home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il / ilImage.z / ilImage
Encoding:
Text File  |  2002-10-03  |  156.1 KB  |  3,167 lines

  1.  
  2.  
  3.  
  4. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllIIIImmmmaaaaggggeeee - base class for the ImageVision Library toolkit
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      ilLink
  13.  
  14. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  15.      #include <il/ilImage.h>
  16.  
  17. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      ilImage is the base class for the ImageVision Library (IL) toolkit. All
  19.      IL image objects are derived from ilImage either directly or indirectly.
  20.      The ilImage base class abstracts the general concept of an image by
  21.      defining variables and functions common to all images. It defines image
  22.      parameters (e.g. size, data type), and provides access functions to query
  23.      and set them. It also provides functions to access image data. ilImage is
  24.      derived from ilLink so that images can be chained together, which allows
  25.      the output of one image operation to become the input to another.
  26.  
  27.      ilImage thus defines a common Application Program Interface (API).  This
  28.      means that, for example, image data can be obtained from any image object
  29.      by calling ggggeeeettttTTTTiiiilllleeee().
  30.  
  31.      UUUUssssiiiinnnngggg iiiillllIIIImmmmaaaaggggeeee
  32.  
  33.      ilImage is intended to be used as a base class for deriving new types of
  34.      images.  Because most of the image data access virtuals return the status
  35.      ilUNSUPPORTED, it is not useful to directly construct an ilImage object.
  36.      However, a pointer to an ilImage can be declared to reference an image of
  37.      unknown derivation.
  38.  
  39.      The ilImage class provides protected and public member functions. The
  40.      protected functions provide convenient services to derived classes,
  41.      (particularly for initializing and resetting an image's attributes) while
  42.      the public functions form the API.
  43.  
  44.      QQQQuuuueeeerrrryyyyiiiinnnngggg aaaannnndddd SSSSeeeettttttttiiiinnnngggg IIIImmmmaaaaggggeeee AAAAttttttttrrrriiiibbbbuuuutttteeeessss
  45.  
  46.      The size of an image in the _x, _y, _z and _c dimensions can be retrieved
  47.      using the function, ggggeeeettttSSSSiiiizzzzeeee().  In a typical 2-D image, z is 1 and the
  48.      number of channels (c) per pixel is 3 (red, green and blue, for example).
  49.      The image size is stored in a data object called iflSize. The size of the
  50.      image can be set using the function, sssseeeettttSSSSiiiizzzzeeee().
  51.  
  52.      The data type of the pixel channels can be retrieved using the function,
  53.      ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee().  It returns an enumerated type called _i_f_l_D_a_t_a_T_y_p_e, which
  54.      has members _i_f_l_C_h_a_r, _i_f_l_U_C_h_a_r, _i_f_l_F_l_o_a_t, and so forth.  The data type can
  55.      be set by passing an iflDataType to the member function, sssseeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee().
  56.  
  57.      The pixel channel order can be queried and set using ggggeeeettttOOOOrrrrddddeeeerrrr() and
  58.      sssseeeettttOOOOrrrrddddeeeerrrr(), respectively. This information is indicated with the
  59.      enumerated type, _i_f_l_O_r_d_e_r. _i_f_l_O_r_d_e_r has members _i_f_l_I_n_t_e_r_l_e_a_v_e_d,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  71.  
  72.  
  73.  
  74.      _i_f_l_S_e_q_u_e_n_t_i_a_l and _i_f_l_S_e_p_a_r_a_t_e, which indicate how the pixel components
  75.      are stored.
  76.  
  77.      The orientation of an image can be queried and set using ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn()
  78.      and sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn() respectively. The orientation of an image is
  79.      specified using the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n.  An orientation of
  80.      _i_f_l_L_o_w_e_r_L_e_f_t_O_r_i_g_i_n, for example, means that the origin of the image is
  81.      displayed in the lower left corner of the window.
  82.  
  83.      The color model of an image can be queried and set using ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll()
  84.      and sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll() functions, respectively.  The color model can be one
  85.      of the enumerated iflColorModel types.
  86.  
  87.      A color map can also be associated with an ilImage.  The color map can be
  88.      queried and set using the ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp() and sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp() functions,
  89.      respectively.  The color map is defined by using an iflColormap object.
  90.  
  91.      In general, for each image attribute there are access functions to set or
  92.      get the associated member variables in class ilImage.
  93.  
  94.      AAAAcccccccceeeessssssssiiiinnnngggg IIIImmmmaaaaggggeeee DDDDaaaattttaaaa
  95.  
  96.      Image data can be accessed as pixels or as a rectangular region of
  97.      arbitrary size called a tile.  Both 2-D and 3-D tile access functions are
  98.      provided.
  99.  
  100.      The virtual access functions present a queued request model, which allows
  101.      an application to issue non-blocking requests for image I/O and later
  102.      inquire the status and/or wait for the operation to complete.  The queued
  103.      model also provides derived classes with the "hooks" needed to
  104.      automatically distribute operations across multiple processors. These
  105.      queued functions are distinguished by the prefix 'q' on the function
  106.      name.  For convenience, there are access functions which do wait for
  107.      their operation to complete, hiding the details of the queued model.
  108.  
  109.      There are several different functions to read image data, all based on
  110.      qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD().  Similarly, there are several different functions to
  111.      write image data based on qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD().  Two fast-paths called
  112.      qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and qqqqCCCCooooppppyyyyTTTTiiiilllleeee3333DDDD() are available for copying a tile from
  113.      another ilImage.
  114.  
  115.      When calling the base functions listed above, the caller must specify the
  116.      origin (x, y, z) and size (nx, ny, nz) of the desired tile.  For 2-D
  117.      operations, z is set to 0 and nz is set to 1.  For pixel operations, nx,
  118.      ny and nz are set to 1.  An object called iflConfig, is used to specify
  119.      the configuration (that is, data type, order, number of channels and so
  120.      forth) of the desired tile.  If required, the image data is converted to
  121.      a specified configuration while getting a tile, or converted from a
  122.      specified configuration to that of the image while setting a tile.
  123.  
  124.      CCCChhhhaaaaiiiinnnniiiinnnngggg IIIImmmmaaaaggggeeeessss
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  137.  
  138.  
  139.  
  140.      Images can be chained together, allowing the output from one image
  141.      operation to become the input to another image operation without an
  142.      intermediate buffer.  Each image can have multiple parents (inputs) and
  143.      multiple children (outputs). In addition to the functions inherited from
  144.      _i_l_L_i_n_k, several functions such as sssseeeettttIIIInnnnppppuuuutttt(), aaaaddddddddIIIInnnnppppuuuutttt() and
  145.      rrrreeeemmmmoooovvvveeeeIIIInnnnppppuuuutttt() are also provided to manage the input list.  Inputs are
  146.      usually added to an image in its constructor, although the input list can
  147.      be manipulated after the image has been created.
  148.  
  149.      The power of chaining is fully realized with image operators (see the
  150.      ilOpImg man page), which can be chained together to perform complex image
  151.      processing operations.  Chaining also allows a single image to be an
  152.      input to multiple output operators.
  153.  
  154.      DDDDeeeerrrriiiivvvviiiinnnngggg NNNNeeeewwww CCCCllllaaaasssssssseeeessss ffffrrrroooommmm iiiillllIIIImmmmaaaaggggeeee
  155.  
  156.      Most new image classes should derive from ilMemCacheImg, ilOpImg,
  157.      ilPolyadicImg, or a derivative (see the relevant man page).  Some special
  158.      cases may require deriving directly from ilImage.
  159.  
  160.      When a new class is derived from ilImage, it should redefine some of the
  161.      inherited virtual functions.  It must define at least one of
  162.      qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(). The virtual function qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg()
  163.      should also be defined to provide a fast-path for copying a tile of image
  164.      data from one ilImage to another; the standard version stages the copy
  165.      through a temporary buffer, halving the potential performance.
  166.  
  167.  
  168.           qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((())))   Retrieves the specified tile of data in the given
  169.                             configuration from the image's input source.
  170.  
  171.           qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((())))   Stores the specified tile of data in the given
  172.                             configuration to the image's output destination.
  173.  
  174.           qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg(((())))    Copies the specified tile of data from another
  175.                             ilImage to this image.
  176.  
  177.           qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(((())))     Fills a tile of the image with a constant pixel
  178.                             value.  qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB(((()))) Also fills a tile, with the
  179.                             fill value specified as a red, green, blue
  180.                             triplet.
  181.  
  182.      In derived classes of ilImage, image attributes can be set using any of
  183.      the access functions after the creation of the image.  When image
  184.      attributes are changed, some parameters that depend on these attributes
  185.      may have to be recomputed, typically in a reset operation. ilImage uses
  186.      the ilLink flags and functions to manage and query the attributes' states
  187.      and provides a default implementation for the ilLink virtual function,
  188.      rrrreeeesssseeeetttt(((()))).  If a derived class must be notified when the image attributes
  189.      change, it will need to re-define the rrrreeeesssseeeetttt() virtual; for proper
  190.      operation, the derived reset must call the base class reset.  Operator
  191.      images (derived from ilOpImg) cannot re-define reset; they can define a
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  203.  
  204.  
  205.  
  206.      new rrrreeeesssseeeettttOOOOpppp() instead.  For more information on operator images and
  207.      resetOp, see the man page for ilOpImg.
  208. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  209.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  210.  
  211.           ilImage()
  212.           ilImage(iflSize &sz)
  213.  
  214.  
  215.      MMMMaaaannnniiiippppuuuullllaaaattttiiiinnnngggg iiiimmmmaaaaggggeeee iiiinnnnppppuuuuttttssss
  216.  
  217.           int getNumInputs()
  218.           void setNumInputs(int num)                            _p_r_o_t_e_c_t_e_d
  219.           ilStatus setInput(ilImage* inimg, int idx = 0)
  220.           ilStatus addInput(ilImage* inimg)
  221.           ilImage* getInput(int idx = 0)
  222.           ilStatus removeInput(int idx = 0)
  223.           ilImage* getDirectInput(int idx = 0)
  224.  
  225.  
  226.      SSSSttttoooorrrriiiinnnngggg aaaannnndddd rrrreeeettttrrrriiiieeeevvvviiiinnnngggg 3333DDDD iiiimmmmaaaaggggeeee ddddaaaattttaaaa
  227.  
  228.           ilStatus getSubTile3D(int x, int y, int z, int nx, int ny,
  229.                                 int nz, void* data, int dx, int dy, int dz,
  230.                                 int dnx, int dny, int dnz,
  231.                                 const ilConfig* config=NULL)
  232.  
  233.           virtual ilStatus qGetSubTile3D(ilMpNode* parent, int x, int y, int z,
  234.                                          int nx, int ny, int nz, void*& data,
  235.                                          int dx, int dy, int dz,
  236.                                          int dnx, int dny, int dnz,
  237.                                          const ilConfig* config=NULL,
  238.                                          ilMpManager** pMgr=NULL)
  239.           ilStatus setSubTile3D(int x, int y, int z, int nx, int ny,
  240.                                 int nz, const void* data, int dx, int dy, int dz,
  241.                                 int dnx, int dny, int dnz,
  242.                                 const ilConfig* config=NULL)
  243.  
  244.           virtual ilStatus qSetSubTile3D(ilMpNode* parent, int x, int y, int z,
  245.                                          int nx, int ny, int nz,
  246.                                          const void* data, int dx, int dy, int dz,
  247.                                          int dnx, int dny, int dnz,
  248.                                          const ilConfig* config=NULL,
  249.                                          ilMpManager** pMgr=NULL)
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                                                         PPPPaaaaggggeeee 4444
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  266.  
  267.  
  268.  
  269.           ilStatus copyTileCfg(int x, int y, int z, int nx, int ny,
  270.                               int nz, ilImage* other, int ox, int oy, int oz,
  271.                               const ilConfig* config=NULL)
  272.  
  273.           virtual ilStatus qCopyTileCfg(ilMpNode* parent, int x, int y, int z,
  274.                                         int nx, int ny, int nz,
  275.                                         ilImage* other, int ox, int oy, int oz,
  276.                                         const ilConfig* config=NULL,
  277.                                         ilMpManager** pMgr=NULL)
  278.  
  279.           ilStatus fillTile3D(int x, int y, int z, int nx, int ny, int nz,
  280.                               const void* data, const ilConfig* config=NULL,
  281.                               const iflTile2Dint* fillMask=NULL)
  282.  
  283.           virtual ilStatus qFillTile3D(ilMpNode* parent, int x, int y, int z,
  284.                                        int nx, int ny, int nz,
  285.                                        const void* data, const ilConfig* config=NULL,
  286.                                        const iflTile3Dint* fillMask=NULL,
  287.                                        ilMpManager** pMgr=NULL)
  288.  
  289.           ilStatus fillTileRGB(int x, int y, int z, int nx, int ny, int nz,
  290.                          float red, float green, float blue,
  291.                          const iflTile3Dint* fillMask=NULL,
  292.                          iflOrientation orientation=iflOrientation(0));
  293.  
  294.           virtual ilStatus qFillTileRGB(ilMpNode* parent, int x, int y, int z,
  295.                                         int nx, int ny, int nz,
  296.                                         float red, float green, float blue,
  297.                                         const iflTile3Dint* fillMask=NULL,
  298.                                         iflOrientation orientation=iflOrientation(0),
  299.                                         ilMpManager** pMgr=NULL)
  300.  
  301.           ilStatus copyTile3D(int x, int y, int z, int nx, int ny, int nz,
  302.                               ilImage* other, int ox, int oy, int oz,
  303.                               int* chanList=NULL)
  304.  
  305.           ilStatus copy(ilImage* from)
  306.  
  307.           ilStatus getTile3D(int x, int y, int z, int nx, int ny,
  308.                              int nz, void* data, const ilConfig* config=NULL)
  309.  
  310.           ilStatus qGetTile3D(ilMpNode* parent, int x, int y, int z,
  311.                               int nx, int ny, int nz, void*& data,
  312.                               const ilConfig* config=NULL, ilMpManager** pMgr=NULL)
  313.  
  314.           ilStatus setTile3D(int x, int y, int z, int nx, int ny, int nz,
  315.                              const void* data, const ilConfig* config=NULL)
  316.  
  317.           ilStatus getPixel3D(int x, int y, int z, iflPixel& pix)
  318.  
  319.           ilStatus setPixel3D(int x, int y, int z, iflPixel& pix)
  320.  
  321.  
  322.  
  323.  
  324.                                                                         PPPPaaaaggggeeee 5555
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  332.  
  333.  
  334.  
  335.      SSSSttttoooorrrriiiinnnngggg aaaannnndddd rrrreeeettttrrrriiiieeeevvvviiiinnnngggg 2222----DDDD iiiimmmmaaaaggggeeee ddddaaaattttaaaa
  336.  
  337.           ilStatus getTile(int x, int y, int nx, int ny, void* data,
  338.                            const ilConfig* config=NULL)
  339.  
  340.           ilStatus setTile(int x, int y, int nx, int ny, const void* data,
  341.                            const ilConfig* config=NULL)
  342.           ilStatus getSubTile(int x, int y, int nx, int ny, void* data,
  343.                               int dx, int dy, int dnx, int dny,
  344.                               const ilConfig* config=NULL)
  345.  
  346.           ilStatus setSubTile(int x, int y, int nx, int ny, const void* data,
  347.                               int dx, int dy, int dnx, int dny,
  348.                               const ilConfig* config=NULL)
  349.  
  350.           ilStatus copyTile(int x, int y, int nx, int ny, ilImage* other,
  351.                             int ox, int oy, int* chanList=NULL)
  352.  
  353.           ilStatus fillTile(int x, int y, int nx, int ny, const void* data,
  354.                             const ilConfig* config=NULL, const iflTile2Dint* fillMask=NULL)
  355.  
  356.           ilStatus getPixel(int x, int y, iflPixel& pix)
  357.  
  358.           ilStatus setPixel(int x, int y, iflPixel& pix)
  359.  
  360.  
  361.  
  362.      DDDDaaaattttaaaa aaaacccccccceeeessssssss ssssuuuuppppppppoooorrrrtttt
  363.  
  364.           ilStatus clipTile(int &x, int &y, int &z, int &nx, int &ny, int &nz,
  365.                             int includeBorder=FALSE)
  366.  
  367.           ilStatus clipTile(iflTile3Dint& t, int includeBorder=FALSE)
  368.           ilStatus clipTile(float &x, float &y, float &z,
  369.                                   float &nx, float &ny,
  370.                                   float &nz, int includeBorder=FALSE)
  371.           ilStatus clipTile(iflTile3Dfloat& t, int includeBorder=FALSE)
  372.           ilStatus configureRetainedCache(const iflTile3Dint& tile,
  373.                                           int c = 0, int nc = -1,
  374.                                           int* chans = NULL, float minCacheBudget = .05,
  375.                                           float maxCacheBudget = 1,
  376.                                           size_t* retainedFileSize = NULL)
  377.           ilImageTile* getInputTileRequirement(const iflTile3Dint& tile,
  378.                                                int c, int nc,
  379.                                                int* chans, int& pageSetCount)
  380.           void setTileRequirementFunction(ilTileRequirementFuncPtr func)   _p_r_o_t_e_c_t_e_d
  381.           void getStrides(int& xs, int& ys, int& zs, int& cs, int nx=0,
  382.                                 int ny=0, int nz=0, int nc=0, iflOrder ord=iflOrder(0))
  383.  
  384.           int outOfBound(int x, int y)                              _p_r_o_t_e_c_t_e_d
  385.  
  386.           int outOfBound(int x, int y, int z)                       _p_r_o_t_e_c_t_e_d
  387.  
  388.  
  389.  
  390.                                                                         PPPPaaaaggggeeee 6666
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  398.  
  399.  
  400.  
  401.      QQQQuuuueeeerrrryyyyiiiinnnngggg aaaabbbboooouuuutttt iiiimmmmaaaaggggeeee pppprrrrooooppppeeeerrrrttttiiiieeeessss
  402.  
  403.           void getDimensions(iflSize& size)
  404.           int getXsize()
  405.           int getYsize()
  406.           int getZsize()
  407.           int getCsize()
  408.           int getNumChans()
  409.           int getWidth()
  410.           int getHeight()
  411.           void getSize(iflSize& size)
  412.           const iflSize& getSize()                _p_r_o_t_e_c_t_e_d
  413.           iflDataType getDataType()
  414.           iflOrder getOrder()
  415.           iflOrientation getOrientation()
  416.           void getConfig(ilConfig* cfg)
  417.           iflColorModel getColorModel()
  418.           iflCompression getCompression()
  419.           const iflPixel& pixel getFill()
  420.           const void* getFillData()
  421.           double getFillValue(int c=0)
  422.           ilStatus getColormap(iflColormap& cmap)
  423.           const iflColormap* getColormap()
  424.           int getMaxColormapLevels()
  425.           size_t getPageSize()
  426.           size_t getPageSize(int& nx, int& ny)
  427.           size_t getPageSize(int& nx, int& ny, int& nz, int& nc)
  428.           size_t getPageSize(iflSize& pageSize)
  429.           size_t getPageSize(iflSize& pageSize, iflOrientation ori)
  430.           size_t getPageDimensions()
  431.           int getPageSizeX()
  432.           int getPageSizeY()
  433.           int getPageSizeZ()
  434.           int getPageSizeC()
  435.           int getPageSizePix()
  436.           int getPageSizeVal()
  437.           int isPartialPage(int x, int y, int z, int c)          _p_r_o_t_e_c_t_e_d
  438.           int isValidPage(int x, int y, int z, int c)       _p_r_o_t_e_c_t_e_d
  439.           virtual int hasPages()
  440.           void getPageDelta(int& nx, int& ny, int& nz, int& nc)
  441.           void getPageDelta(iflXYZCint& delta)
  442.           void getPageBorder(iflXYZint& border)
  443.           const iflXYZint& getPageBorder()
  444.           int getPageBorderX()
  445.           int getPageBorderY()
  446.           int getPageBorderZ()
  447.           void getPageCounts(int& nx, int& ny, int& nz, int& nc)
  448.           void getPageIndices(int x, int y, int z, int c, int& ix,
  449.                               int& iy, int& iz, int& ic)
  450.           ilStatus getPageOrigin(int x, int y, int z, int c,
  451.                                        int& px, int& py, int& pz, int& pc)
  452.           ilStatus getPageOrigin(const iflXYZCint& pos, iflXYZCint& org)
  453.  
  454.  
  455.  
  456.                                                                         PPPPaaaaggggeeee 7777
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  464.  
  465.  
  466.  
  467.           int getPageOriginX(int x)
  468.           int getPageOriginY(int y)
  469.           int getPageOriginZ(int z)
  470.           int getPageOriginC(int c)
  471.           int getPriority()
  472.           int hasPageBorder()
  473.           int isIntegral()
  474.           int isSigned()
  475.           int isWritable()
  476.  
  477.  
  478.      SSSSeeeettttttttiiiinnnngggg iiiimmmmaaaaggggeeee pppprrrrooooppppeeeerrrrttttiiiieeeessss
  479.  
  480.           ilStatus setColorModel(iflColorModel c)
  481.           void initColorModel(int noAlpha=FALSE)                    _p_r_o_t_e_c_t_e_d
  482.           ilStatus setOrientation(iflOrientation spc)
  483.           ilStatus setDataType(iflDataType dtype)
  484.           ilStatus setCompression(iflCompression c)
  485.           ilStatus setFill(const iflPixel& pixel)
  486.           ilStatus setFillValue(double val, int c=0)
  487.           ilStatus setFillRGB(float red, float green, float blue)
  488.           ilStatus setSize(const iflSize& size)
  489.           ilStatus setSize(int nx, int ny)
  490.           ilStatus setXsize(int nx)
  491.           ilStatus setYsize(int ny)
  492.           ilStatus setZsize(int nc)
  493.           ilStatus setCsize(int nc)
  494.           ilStatus setNumChans(int nc)
  495.           ilStatus setOrder(iflOrder order)
  496.           void initPageSize(const iflSize& pageSize)           _p_r_o_t_e_c_t_e_d
  497.           ilStatus setPageSize(const iflSize& pageSize)
  498.           ilStatus setPageSize(int nx, int ny, int nz, int nc)
  499.           ilStatus setPageSize(int nx, int ny)
  500.           ilStatus setPageSizeZ(int nz)
  501.           ilStatus setPageSizeC(int nc)
  502.           ilStatus setPageBorder(const iflXYZint& border)
  503.           ilStatus setPageBorder(int nx, int ny, int nz=0)
  504.           ilStatus setColormap(const iflColormap& cmap)
  505.           void setMaxColormapLevels(int maxLevels)
  506.           void setPriority(int pri)
  507.           void setWritable(int enable=TRUE)                 _p_r_o_t_e_c_t_e_d
  508.           int inherit(int typeMask=0, int orderMask=0, int allowDiffColorModels=FALSE)_p_r_o_t_e_c_t_e_d
  509.           void checkValidType(int typeMask, int wantSigned=FALSE)     _p_r_o_t_e_c_t_e_d
  510.           void checkValidOrder(int orderMask)     _p_r_o_t_e_c_t_e_d
  511.  
  512.  
  513.      QQQQuuuueeeerrrryyyyiiiinnnngggg aaaabbbboooouuuutttt mmmmiiiinnnniiiimmmmuuuummmm aaaannnndddd mmmmaaaaxxxxiiiimmmmuuuummmm ppppiiiixxxxeeeellll
  514.  
  515.           double getMinValue()
  516.           double getMaxValue()
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                                                         PPPPaaaaggggeeee 8888
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  530.  
  531.  
  532.  
  533.      SSSSeeeettttttttiiiinnnngggg mmmmiiiinnnniiiimmmmuuuummmm aaaannnndddd mmmmaaaaxxxxiiiimmmmuuuummmm ppppiiiixxxxeeeellll vvvvaaaalllluuuueeeessss
  534.  
  535.           void initMinMax(int force=FALSE)                          _p_r_o_t_e_c_t_e_d
  536.           ilStatus setMinValue(double val)
  537.           ilStatus setMaxValue(double val)
  538.  
  539.  
  540.      MMMMaaaannnnaaaaggggiiiinnnngggg tttthhhheeee IIIImmmmaaaaggggeeee''''ssss ssssttttaaaatttteeee
  541.  
  542.           virtual void reset()                                       _p_r_o_t_e_c_t_e_d
  543.  
  544.           ilLockedTile* lockTile3D(int x, int y, int z,
  545.                          int nx, int ny, int nz,
  546.                               const ilConfig* config=NULL,
  547.                          int mode=ilLMread)
  548.           ilLockedTile* lockTile(int x, int y, int nx, int ny,
  549.                          const ilConfig* config=NULL, int mode=ilLMread)
  550.           ilStatus lockPageSet(ilLockRequest* set, int mode=ilLMread,
  551.                         int count=1)
  552.           virtual ilStatus qLockPageSet(ilMpNode* parent, ilLockRequest* set,
  553.                                         int mode=ilLMread, int count=1,
  554.                                         ilMpManager** pMgr=NULL,
  555.                                         ilCallback* perPageCb=NULL)
  556.           virtual void unlockPageSet(ilLockRequest* set, int count=1)
  557.           ilPage* lockPage(int x, int y, int z, int c, ilStatus& status,
  558.                                    int mode=ilLMread)
  559.           void unlockPage(ilPage* page)
  560.           ilLockRequest* getLockTileSet(int& count, const iflTile3Dint& tile,
  561.                                         const ilConfig* config=NULL,
  562.                                         int includeBorder=FALSE)
  563.  
  564.  
  565.      OOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn ssssuuuuppppppppoooorrrrtttt
  566.  
  567.           void mapTile(iflOrientation fromOri, iflTile2Dint& tile,
  568.                        iflOrientation workOri=iflOrientation(0))
  569.           void mapTile(iflOrientation fromOri, iflTile2Dfloat& tile,
  570.                        iflOrientation workOri=iflOrientation(0))
  571.           void mapTile(iflOrientation fromOri, iflTile2Dint &tile, iflFlip &flip,
  572.                        int &transXY, iflOrientation workOri=iflOrientation(0))
  573.           void mapXY(iflOrientation fromOri, int& x, int& y,
  574.                      iflOrientation workOri=iflOrientation(0))
  575.           void mapXY(iflOrientation fromOri, float& x, float& y,
  576.                      iflOrientation workOri=iflOrientation(0))
  577.           void mapXYSign(iflOrientation fromOri, float& x, float& y,
  578.                      iflOrientation workOri=iflOrientation(0))
  579.           void mapSize(iflOrientation fromOri, int& x, int& y,
  580.                      iflOrientation workOri=iflOrientation(0))
  581.           iflOrientation mapOrientation(int flipX, int flipY, int transXY=FALSE)
  582.           iflOrientation mapFlipTrans(iflOrientation fromOrientation,
  583.                              iflFlip& flip, int& transXY,
  584.                              iflOrientation workOrientation=iflOrientation(0));
  585.  
  586.  
  587.  
  588.                                                                         PPPPaaaaggggeeee 9999
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  596.  
  597.  
  598.  
  599.           void getSize(iflSize& size, iflOrientation workOri)
  600.           int isMirrorOrientation(iflOrientation otherOri,
  601.                                    iflOrientation workOri=iflOrientation(0))
  602.  
  603.  
  604.      MMMMaaaappppppppiiiinnnngggg ttttoooo oooorrrr ffffrrrroooommmm ssssoooouuuurrrrcccceeee iiiimmmmaaaaggggeeee
  605.  
  606.           ilStatus mapToSource(float& x, float& y, float& z,
  607.               float u, float v, float w)
  608.           ilStatus mapToSource(float& x, float& y, float u, float v)
  609.           ilStatus mapToSource(iflXYfloat& src, const iflXYfloat& self)
  610.           ilStatus mapFromSource(float& u, float& v, float& w,
  611.               float x, float y, float z)
  612.           ilStatus mapFromSource(float& u, float& v, float x, float y)
  613.           ilStatus mapFromSource(iflXYfloat& self, const iflXYfloat& src)
  614.           virtual ilStatus mapToInput(float& x, float& y, float& z,
  615.               float u, float v, float w, int idx=0)
  616.           ilStatus mapToInput(float& x, float& y, float u, float v, int idx=0)
  617.           ilStatus mapToInput(iflXYfloat& xy, const iflXYfloat& uv, int idx=0)
  618.           ilStatus void mapFromInput(float& u, float& v, float& w,
  619.               float x, float y, float z, int idx=0)
  620.           ilStatus mapFromInput(float& u, float& v, float x, float y, int idx=0)
  621.           ilStatus mapFromInput(iflXYfloat& uv, const iflXYfloat& xy, int idx=0)
  622.  
  623.  
  624.      CCCCoooolllloooorrrr ccccoooonnnnvvvveeeerrrrssssiiiioooonnnn ssssuuuuppppppppoooorrrrtttt
  625.  
  626.           ilColorImg* getColorImg(iflColorModel cm)
  627.           int isColorImg()
  628.           int getCopyConverter(ilImage*& other, const ilConfig* cfg) _p_r_o_t_e_c_t_e_d
  629.           void checkColorModel()                        _p_r_o_t_e_c_t_e_d
  630.           double getScaleMin()
  631.           double getScaleMax()
  632.           ilStatus setScaleMinMax(double min, double max)
  633.           ilStatus setScaleType(iflDataType type=iflDataType(0))
  634.           void initScaleMinMax(int force=FALSE)
  635.  
  636.  
  637.      HHHHaaaarrrrddddwwwwaaaarrrreeee AAAAcccccccceeeelllleeeerrrraaaattttiiiioooonnnn
  638.  
  639.           void setHwEnable(ilHwAccelEnable enable)
  640.           ilHwAccelEnable getHwEnable()
  641.           virtual ilHwOp* hwDefine()                   _p_r_o_t_e_c_t_e_d
  642.           virtual ilHwPass* hwGetPass(const ilHwTarget& target, int force=FALSE)
  643.           ilHwPassTable* getHwPassTable()                   _p_r_o_t_e_c_t_e_d
  644.           ilHwOp* getHwOp()                            _p_r_o_t_e_c_t_e_d
  645.           void setDisplayCacheEnable(int en=TRUE)           _p_r_o_t_e_c_t_e_d
  646.           int getDisplayCacheEnable()
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.                                                                        PPPPaaaaggggeeee 11110000
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  662.  
  663.  
  664.  
  665.      MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss
  666.  
  667.           void* allocFillData(float red, float green, float blue)
  668.           void freeFillData(void* data)
  669.  
  670.  
  671. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  672.      iiiillllIIIImmmmaaaaggggeeee(((())))
  673.  
  674.           ilImage()
  675.           ilImage(iflSize &sz)
  676.  
  677.  
  678.           Two constructors are provided for ilImage. The default constructor
  679.           takes no parameters and is used by default for derived classes. The
  680.           second constructor takes a reference to an _i_f_l_S_i_z_e object, _s_z, which
  681.           is used to initialize the size of the image.
  682.  
  683.           An iflSize object contains integer members to hold the number of
  684.           pixels in the _x, _y and _z dimensions as well as the number of
  685.           channels per pixel _c (see also sssseeeettttSSSSiiiizzzzeeee()).  Both constructors
  686.           initialize most image attributes to 0 or NULL.  The ilLink altered
  687.           flag is set to _i_l_I_P_g_e_n_e_r_i_c and the ilLink allowed flag is set to
  688.           (_i_l_I_P_g_e_n_e_r_i_c|_i_l_I_P_m_i_n_P_i_x_e_l|_i_l_I_P_m_a_x_P_i_x_e_l|_i_l_I_P_f_i_l_l) (see the ilLink man
  689.           page and the enumerated type _i_l_I_m_g_P_a_r_a_m in _i_l/_i_l_I_m_a_g_e_s._h).  No
  690.           compression is assumed.  Status is set to ilOKAY.
  691.  
  692.  
  693.      aaaallllllllooooccccFFFFiiiillllllllDDDDaaaattttaaaa(((())))
  694.  
  695.           void* allocFillData(float red, float green, float blue)
  696.  
  697.  
  698.           This function allocates a pixel and sets it to correspond to the
  699.           given _r_e_d, _g_r_e_e_n, and _b_l_u_e pixel components.  The returned value
  700.           points to the allocated pixel, which should be free'd with
  701.           ffffrrrreeeeeeeeFFFFiiiillllllllDDDDaaaattttaaaa().
  702.  
  703.      aaaaddddddddIIIInnnnppppuuuutttt(((())))
  704.  
  705.           ilStatus addInput(ilImage* inimg)
  706.  
  707.  
  708.           Adds the image pointed to by _i_n_i_m_g to the end of the input (parent)
  709.           list.  See sssseeeettttIIIInnnnppppuuuutttt().
  710.  
  711.      cccchhhheeeecccckkkkCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  712.  
  713.           void checkColorModel()                        _p_r_o_t_e_c_t_e_d
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                                                        PPPPaaaaggggeeee 11111111
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  728.  
  729.  
  730.  
  731.           Checks the current color model against the number of channels. If
  732.           there is a mismatch, the number of channels (size.c) is adjusted to
  733.           match the color model. However, if the number of channels has been
  734.           set, then status is set to ilBADCOLFMT.
  735.  
  736.      cccchhhheeeecccckkkkVVVVaaaalllliiiiddddOOOOrrrrddddeeeerrrr(((())))
  737.  
  738.           void checkValidOrder(int orderMask)     _p_r_o_t_e_c_t_e_d
  739.  
  740.  
  741.           Select a data order for this image that is one of the intersection
  742.           of the orders specified in _o_r_d_e_r_M_a_s_k and the allowed orders for this
  743.           image (see iiiillllLLLLiiiinnnnkkkk::::::::sssseeeettttAAAAlllllllloooowwwweeeedddd()).
  744.  
  745.      This method is called by iiiinnnnhhhheeeerrrriiiitttt() and should only be called within an
  746.      image's rrrreeeesssseeeetttt() method.
  747.  
  748.      cccchhhheeeecccckkkkVVVVaaaalllliiiiddddTTTTyyyyppppeeee(((())))
  749.  
  750.           void checkValidType(int typeMask, int wantSigned=FALSE)     _p_r_o_t_e_c_t_e_d
  751.  
  752.  
  753.           Select a data type for this image that is one of the intersection of
  754.           the types specified in _t_y_p_e_M_a_s_k and the allowed data types for this
  755.           image (see iiiillllLLLLiiiinnnnkkkk::::::::sssseeeettttAAAAlllllllloooowwwweeeedddd()).  If _w_a_n_t_S_i_g_n_e_d is _T_R_U_E, then a
  756.           signed data type is selected if one is allowed. (See
  757.           iiiiffffllllDDDDaaaattttaaaaCCCClllloooosssseeeessssttttTTTTyyyyppppeeee(((()))) for details on the selection process.)
  758.  
  759.      This method is called by iiiinnnnhhhheeeerrrriiiitttt() and should only be called within an
  760.      image's rrrreeeesssseeeetttt() method.
  761.  
  762.      cccclllliiiippppTTTTiiiilllleeee(((())))
  763.  
  764.           ilStatus clipTile(int &x, int &y, int &z, int &nx, int &ny, int &nz,
  765.                             int includeBorder=FALSE)
  766.           ilStatus clipTile(iflTile3Dint& t, int includeBorder=FALSE)
  767.           ilStatus clipTile(float &x, float &y, float &z,
  768.                             float &nx, float &ny,
  769.                             float &nz, int includeBorder=FALSE)
  770.           ilStatus clipTile(iflTile3Dfloat& t, int includeBorder=FALSE)
  771.  
  772.  
  773.           Clips the given tile parameters to the image bounds.  The tile
  774.           boundaries might be passed as parameters to ggggeeeettttTTTTiiiilllleeee3333DDDD() or
  775.           sssseeeettttTTTTiiiilllleeee3333DDDD(), for example.  The tile may be specified as six int
  776.           parameters, or as an iflTile3Dint.  Alternative versions allow the
  777.           parameters to be passed as float.  If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE, then
  778.           the clip bounds are increased to include the size of the page
  779.           border, if any (see sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))).  If any of the parameters
  780.           needed to be clipped to fit the image, this function returns
  781.           ilDATACLIPPED; otherwise, it returns ilOKAY.
  782.  
  783.  
  784.  
  785.  
  786.                                                                        PPPPaaaaggggeeee 11112222
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  794.  
  795.  
  796.  
  797.      ccccoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee(((())))
  798.  
  799.           ilStatus configureRetainedCache(const iflTile3Dint& tile,
  800.                                           int c = 0, int nc = -1,
  801.                                           int* chans = NULL, float minCacheBudget = .05,
  802.                                           float maxCacheBudget = 1,
  803.                                           size_t* retainedFileSize = NULL)
  804.  
  805.  
  806.           Convenience method that calls iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() with a
  807.           single iiiillllIIIImmmmaaaaggggeeeeTTTTiiiilllleeee that specifies the tile for this image denoted in
  808.           the arguments _t_i_l_e, _c, _n_c, and _c_h_a_n_s.  The remaining arguments are
  809.           passed directly to iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee().  The value returned
  810.           by iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() is returned.
  811.  
  812.      ccccooooppppyyyy(((())))
  813.  
  814.           ilStatus copy(ilImage* from)
  815.  
  816.  
  817.           Copies data from the image specified by _f_r_o_m.  If the two images are
  818.           of different sizes, only the origin-aligned  intersecting portion is
  819.           copied.  See also ccccooooppppyyyyTTTTiiiilllleeee3333DDDD().
  820.  
  821.      ccccooooppppyyyyTTTTiiiilllleeee(((())))
  822.  
  823.           ilStatus copyTile(int x, int y, int nx, int ny, ilImage* other,
  824.                       int ox, int oy, int* chanList=NULL)
  825.           ilStatus copyTile3D(int x, int y, int z, int nx, int ny, int nz,
  826.                               ilImage* other, int ox, int oy, int oz,
  827.                               int* chanList=NULL)
  828.           ilStatus copyTileCfg(int x, int y, int z, int nx, int ny, int nz,
  829.                                ilImage* other, int ox, int oy, int oz,
  830.                                const ilConfig* config=NULL)
  831.  
  832.  
  833.           These functions queue a copyTile request with qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and
  834.           wait for it to complete.  The tile at _x, _y, _z of size _n_x, _n_y, _n_z is
  835.           copied to this image from _o_t_h_e_r image at _o_x, _o_y, _o_z.  The 2D
  836.           version, ccccooooppppyyyyTTTTiiiilllleeee() calls the corresponding 3D routine with _z set to
  837.           zero and _n_z and _o_z set to one.
  838.  
  839.           ccccooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() takes an ilConfig argument, _c_o_n_f_i_g, which is used to
  840.           reconfigure the pixel data type, order, channels and orientation as
  841.           well as offsetting into the channel dimension.  The other two copy
  842.           routines accept a channel list, which is used to construct an
  843.           ilConfig object with all other taken from "this" image.  The channel
  844.           list in _c_o_n_f_i_g specifies a channel mapping between the "other" and
  845.           "this" image. The number of entries in the list should always match
  846.           the number of channels in "this" image. A -1  means no data is
  847.           written for that channel.
  848.  
  849.  
  850.  
  851.  
  852.                                                                        PPPPaaaaggggeeee 11113333
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  860.  
  861.  
  862.  
  863.           See also qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and ggggeeeettttCCCCoooonnnnffffiiiigggg().
  864.  
  865.      ffffiiiillllllllTTTTiiiilllleeee(((())))
  866.  
  867.           ilStatus fillTile(int x, int y, int nx, int ny, const void* data,
  868.                       const ilConfig* config=NULL,
  869.                       const iflTile2Dint* fillMask=NULL)
  870.           ilStatus fillTile3D(int x, int y, int z, int nx, int ny, int nz,
  871.                               const void* data, const ilConfig* config=NULL,
  872.                               const iflTile2Dint* fillMask=NULL)
  873.           ilStatus fillTileRGB(int x, int y, int z, int nx, int ny, int nz,
  874.                          float red, float green, float blue,
  875.                          const iflTile3Dint* fillMask=NULL,
  876.                          iflOrientation orientation=iflOrientation(0));
  877.  
  878.  
  879.           These functions queue a fill tile request with qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD() or
  880.           qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() and wait for it to complete.  The tile at position
  881.           (_x,_y,_z) of size _n_x, _n_y, _n_z will be filled with a constant pixel
  882.           value.  ffffiiiillllllllTTTTiiiilllleeee() sets _z to zero and _n_z to one.
  883.  
  884.           _c_o_n_f_i_g describes the configuration (See the ilConfig man page) of
  885.           the fill value _d_a_t_a; if NULL, it is assumed to have the same
  886.           configuration as the image.  For example, to fill a tile of an RGB
  887.           image with white, _d_a_t_a should hold the values (255, 255, 255).
  888.           ffffiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() is provided as a convenience method for RGB images;
  889.           the _r_e_d, _g_r_e_e_n, and _b_l_u_e pixel components are passed directly as
  890.           floats.
  891.  
  892.           The parameter, _f_i_l_l_M_a_s_k, can be used to prevent filling a portion of
  893.           the tile.  If _f_i_l_l_M_a_s_k is not NULL, only the portion outside of
  894.           _f_i_l_l_M_a_s_k is filled. If _c_o_n_f_i_g is not NULL and it specifies a valid
  895.           orientation, then _f_i_l_l_M_a_s_k is mapped from that orientation to that
  896.           of the image; otherwise _f_i_l_l_M_a_s_k is assumed to have the same
  897.           orientation as that of the image.  ffffiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() takes a mask
  898.           _o_r_i_e_n_t_a_t_i_o_n as a parameter which defaults to the same orientation as
  899.           the image.
  900.  
  901.           See also the ilCacheImg man page.
  902.  
  903.      ffffrrrreeeeeeeeFFFFiiiillllllllDDDDaaaattttaaaa(((())))
  904.  
  905.           void freeFillData(void* data)
  906.  
  907.  
  908.           This function free's a pixel allocated with aaaallllllllooooccccFFFFiiiillllllllDDDDaaaattttaaaa().
  909.  
  910.      ggggeeeettttDDDDiiiimmmmeeeennnnssssiiiioooonnnnssss(((())))
  911.  
  912.           void getDimensions(iflSize& size)
  913.  
  914.  
  915.  
  916.  
  917.  
  918.                                                                        PPPPaaaaggggeeee 11114444
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  926.  
  927.  
  928.  
  929.           Returns the size of the image in the ilLowerLeftOrigin orientation.
  930.  
  931.      ggggeeeettttDDDDiiiirrrreeeeccccttttIIIInnnnppppuuuutttt(((())))
  932.  
  933.           ilImage* getDirectInput(int idx = 0)
  934.  
  935.  
  936.           Return the direct input at index _i_d_x, ignoring whether or not it is
  937.           enabled.  (See ggggeeeettttIIIInnnnppppuuuutttt() and iiiillllLLLLiiiinnnnkkkk::::::::ggggeeeettttDDDDiiiirrrreeeeccccttttPPPPaaaarrrreeeennnntttt().)
  938.  
  939.      ggggeeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee(((())))
  940.  
  941.           int getDisplayCacheEnable()
  942.  
  943.  
  944.           Returns the current setting for the display cache enable. See
  945.           sssseeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee.
  946.  
  947.      ggggeeeettttCCCCoooolllloooorrrrIIIImmmmgggg(((())))
  948.  
  949.           ilColorImg* getColorImg(iflColorModel cm)
  950.  
  951.  
  952.           Returns a pointer to an ilColorImg that is a child of "this" image
  953.           and has the color model specified by _c_m. The new color converter
  954.           inherits most attributes, except for the color model and the number
  955.           of channels, from "this" image.
  956.  
  957.      ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((())))
  958.  
  959.           ilStatus getColormap(iflColormap &cmap)
  960.           const iflColormap* getColormap()
  961.  
  962.  
  963.           These functions return the image's colormap.  The first version
  964.           deposits the image's color map in the iflColormap object pointed to
  965.           by _c_m_a_p and returns a status value.  The status value is either the
  966.           image's status or ilNULLOBJ, if the colormap is NULL.  If ilOKAY is
  967.           not returned, then the argument is unchanged.  The second version
  968.           returns a pointer to this image object's colormap, which may be
  969.           NULL.
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.                                                                        PPPPaaaaggggeeee 11115555
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  992.  
  993.  
  994.  
  995.      ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  996.  
  997.           iflColorModel getColorModel()
  998.  
  999.  
  1000.           Returns the color model of the image. _i_f_l_C_o_l_o_r_M_o_d_e_l is an enumerated
  1001.           type with the following members:
  1002.           _i_f_l_R_G_B         red, green, blue
  1003.  
  1004.           _i_f_l_R_G_B_A        red, green, blue, alpha
  1005.  
  1006.           _i_f_l_R_G_B_P_a_l_e_t_t_e  RGB color mapped to a look-up  table
  1007.  
  1008.           _i_f_l_H_S_V         hue, saturation, value
  1009.  
  1010.           _i_f_l_C_M_Y         cyan, magenta, yellow
  1011.  
  1012.           _i_f_l_C_M_Y_K        cyan, magenta, yellow, black
  1013.  
  1014.           _i_f_l_N_e_g_a_t_i_v_e    inverted luminance (min is white, max is black)
  1015.  
  1016.           _i_f_l_L_u_m_i_n_a_n_c_e   luminance
  1017.  
  1018.           _i_f_l_L_u_m_i_n_a_n_c_e_A_l_p_h_a
  1019.                          luminance, alpha
  1020.  
  1021.           _i_f_l_B_G_R         swapped RGB, for images generated by SGI
  1022.  
  1023.           _i_f_l_A_B_G_R        swapped RGBA, for images generated by SGI
  1024.  
  1025.           _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l
  1026.                          multiple channels of sensor-specific  data
  1027.           The color model is used to interpret the meaning of the channels
  1028.           that make up a pixel. See also sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll().
  1029.  
  1030.      ggggeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((())))
  1031.  
  1032.           iflCompression getCompression()
  1033.  
  1034.  
  1035.           Returns the image compression parameter as the enumerated type,
  1036.           _i_f_l_C_o_m_p_r_e_s_s_i_o_n.  This parameter reflects the type of compression
  1037.           used in the image data.  See also sssseeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn().
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.                                                                        PPPPaaaaggggeeee 11116666
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1055.  
  1056.  
  1057.  
  1058.      ggggeeeettttCCCCoooonnnnffffiiiigggg(((())))
  1059.  
  1060.           void getConfig(ilConfig* cfg)
  1061.  
  1062.  
  1063.           Returns the image's configuration in the ilConfig object pointed to
  1064.           by _c_f_g. The ilConfig class (see _i_l/_i_l_C_o_n_f_i_g._h) contains eight
  1065.           elements:  an iflDataType that defines the data type of the image's
  1066.           pixels, an iflOrder that describes how that data is ordered, an int
  1067.           that sets how many data channels there are, an array of ints that
  1068.           determines the order of the channels, an iflOrientation, and three
  1069.           zoom factors for the three dimensions.  See also ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(),
  1070.           ggggeeeettttOOOOrrrrddddeeeerrrr(), ggggeeeettttNNNNuuuummmmCCCChhhhaaaannnnssss() and ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn().
  1071.  
  1072.      ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((())))
  1073.  
  1074.           iflOrientation getOrientation()
  1075.  
  1076.  
  1077.           Returns the image orientation parameter as the enumerated type,
  1078.           _i_f_l_O_r_i_e_n_t_a_t_i_o_n. This parameter determines, for example, whether the
  1079.           image origin is the upper left corner or the lower left corner.  See
  1080.           also sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn().
  1081.  
  1082.      ggggeeeettttCCCCooooppppyyyyCCCCoooonnnnvvvveeeerrrrtttteeeerrrr(((())))
  1083.  
  1084.           int getCopyConverter(ilImage*& other, const ilConfig* cfg)    _p_r_o_t_e_c_t_e_d
  1085.  
  1086.  
  1087.           If the _o_t_h_e_r image has a different color model than this image, a
  1088.           color converter operator is chained onto _o_t_h_e_r and TRUE is returned
  1089.           (the new operator is returned via _o_t_h_e_r).  If the color models are
  1090.           compatible, OR if the _c_f_g specifies a channel list or channel
  1091.           offset, then no operator is chained and FALSE is returned.  When _c_f_g
  1092.           specifies a channel list or offset, it is assumed that no color
  1093.           conversion should be performed.
  1094.  
  1095.      ggggeeeettttCCCCssssiiiizzzzeeee(((())))
  1096.  
  1097.           int getCsize()
  1098.           int getNumChans()
  1099.  
  1100.  
  1101.           Returns the number of channels in the image. For example an RGB
  1102.           image is a 3 channel image.
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.                                                                        PPPPaaaaggggeeee 11117777
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1121.  
  1122.  
  1123.  
  1124.      ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((())))
  1125.  
  1126.           iflDataType getDataType()
  1127.  
  1128.  
  1129.           Returns the data type of the image's pixels.  The iflDataType value
  1130.           returned can be one of the following: _i_f_l_B_i_t, _i_f_l_C_h_a_r, _i_f_l_U_C_h_a_r,
  1131.           _i_f_l_S_h_o_r_t, _i_f_l_U_S_h_o_r_t, _i_f_l_L_o_n_g, _i_f_l_U_L_o_n_g, _i_f_l_F_l_o_a_t, or _i_f_l_D_o_u_b_l_e.  See
  1132.           also ggggeeeettttCCCCoooonnnnffffiiiigggg().
  1133.  
  1134.      ggggeeeettttFFFFiiiillllllll(((())))
  1135.  
  1136.           const iflPixel& pixel getFill()
  1137.  
  1138.  
  1139.           Returns a reference to the image's fill pixel value. See also
  1140.           sssseeeettttFFFFiiiillllllll().
  1141.  
  1142.      ggggeeeettttFFFFiiiillllllllDDDDaaaattttaaaa(((())))
  1143.  
  1144.           const void* getFillData()
  1145.  
  1146.  
  1147.           This function calls the ggggeeeettttDDDDaaaattttaaaa() method of the image's fill pixel
  1148.           and returns the result.
  1149.  
  1150.      ggggeeeettttFFFFiiiillllllllVVVVaaaalllluuuueeee(((())))
  1151.  
  1152.           double getFillValue(int c=0)
  1153.  
  1154.  
  1155.           Returns the image fill value of channel _c.  See also ggggeeeettttFFFFiiiillllllll().
  1156.  
  1157.      ggggeeeettttHHHHeeeeiiiigggghhhhtttt(((())))
  1158.  
  1159.           int getHeight()
  1160.  
  1161.  
  1162.           Returns the height of _i_m_g.  See also getWidth() and getYsize().
  1163.  
  1164.      ggggeeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(((())))
  1165.  
  1166.           ilHwAccelEnable getHwEnable()
  1167.  
  1168.  
  1169.           This function returns the value of the hardware acceleration enable
  1170.           flag as set by sssseeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee().
  1171.  
  1172.      ggggeeeettttHHHHwwwwOOOOpppp(((())))
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.                                                                        PPPPaaaaggggeeee 11118888
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1187.  
  1188.  
  1189.  
  1190.           ilHwOp *getHwOp()                       _p_r_o_t_e_c_t_e_d
  1191.  
  1192.  
  1193.           This function returns a pointer to the ilHwOp private member
  1194.           variable; it is provided to allow access by derived classes.
  1195.  
  1196.           Currently, user-defined hardware acceleration is unsupported.  For
  1197.           more information on hardware acceleration, see ilHwDefs.h and the
  1198.           Programmer's Guide.
  1199.  
  1200.      ggggeeeettttHHHHwwwwPPPPaaaassssssssTTTTaaaabbbblllleeee(((())))
  1201.  
  1202.           ilHwPassTable* getHwPassTable()              _p_r_o_t_e_c_t_e_d
  1203.  
  1204.  
  1205.           This function returns a pointer to the ilHwPassTable for this image;
  1206.           it is provided to allow access to this table by derived classes.
  1207.  
  1208.           Currently, user-defined hardware acceleration is unsupported.  For
  1209.           more information on hardware acceleration, see ilHwDefs.h and the
  1210.           Programmer's Guide.
  1211.  
  1212.      ggggeeeettttIIIInnnnppppuuuutttt(((())))
  1213.  
  1214.           ilImage* getInput(int idx = 0)
  1215.  
  1216.  
  1217.           Returns a pointer to the ilImage at index _i_d_x in the parent list.
  1218.           NULL is returned if there is no image at the specified index.  The
  1219.           default index is 0.
  1220.  
  1221.      ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt(((())))
  1222.  
  1223.           ilImageTile* getInputTileRequirement(const iflTile3Dint& tile,
  1224.                                                int c, int nc,
  1225.                                                int* chans, int& pageSetCount)
  1226.  
  1227.  
  1228.           This method is used by the global function
  1229.           iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() to determine the input data requirement
  1230.           to evaluate a given output tile.  The method really ought to be a
  1231.           virtual, so that derived classes can easily override its behavior,
  1232.           but it cannot be done this way and still maintain binary
  1233.           compatibility with IL 3.1.1.  Therefore, a derived class can
  1234.           override the behavior of this method only by calling the method
  1235.           sssseeeettttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnnttttFFFFuuuunnnnccccttttiiiioooonnnn() to establish a new behavior.
  1236.  
  1237.           The default implementation returns an array of iiiillllIIIImmmmaaaaggggeeeeTTTTiiiilllleeee's, one
  1238.           for each of the image's inputs, with tile coordinates identical to
  1239.           the passed tile coordinates.  Derived classes, such as iiiillllMMMMoooonnnnaaaaddddiiiiccccIIIImmmmgggg
  1240.           and iiiillllPPPPoooollllyyyyaaaaddddiiiiccccIIIImmmmgggg, override the default behavior to take input
  1241.           offsets into account.  iiiillllWWWWaaaarrrrppppIIIImmmmgggg overrides the default behavior to
  1242.  
  1243.  
  1244.  
  1245.                                                                        PPPPaaaaggggeeee 11119999
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1253.  
  1254.  
  1255.  
  1256.           incorporate the effect of the warp.  As an example of overriding the
  1257.           default behavior, here is iiiillllPPPPoooollllyyyyaaaaddddiiiiccccIIIImmmmgggg's version:
  1258.  
  1259.           ilImageTile*
  1260.           ilPolyadicImg::getInputTileRequirement(const iflTile& tile, int c, int nc,
  1261.                                      int* chans, int& inputTileCount)
  1262.           {
  1263.               if (resetCheck()) { inputTileCount = 0; return NULL; }
  1264.  
  1265.               int count = getNumParents();
  1266.               ilImageTile* inputTiles = new ilImageTile [count];
  1267.  
  1268.               int activeCount = 0;
  1269.               ilLinkParentIter iter(this);
  1270.               ilLink* link;
  1271.               while (link = iter.next()) {
  1272.                if (link->derivesFrom(iflClassID(ilImage))) {
  1273.                    ilImage* img = (ilImage*)link;
  1274.                    iflTile offTile = tile;
  1275.                    int idx = iter.currIndex();
  1276.                    if (idx >= 0) {
  1277.                     int x, y, z;
  1278.                     getOffset(x, y, z, idx);
  1279.                     offTile.x -= x;
  1280.                     offTile.y -= y;
  1281.                     offTile.z -= z;
  1282.                    }
  1283.                    inputTiles[activeCount++].init(img, offTile, c, nc, chans);
  1284.                }
  1285.                else if (link->derivesFrom(iflClassID(ilImgStat)))
  1286.                    activeCount += ((ilImgStat*)link)
  1287.                             ->getInputTileRequirement(inputTiles[activeCount]);
  1288.               }
  1289.  
  1290.               inputTileCount = activeCount;
  1291.               if (activeCount == 0) { delete inputTiles; inputTiles = NULL; }
  1292.  
  1293.               return inputTiles;
  1294.           }
  1295.  
  1296.  
  1297.      ggggeeeettttLLLLoooocccckkkkTTTTiiiilllleeeeSSSSeeeetttt(((())))
  1298.  
  1299.           ilLockRequest* getLockTileSet(int& count, const iflTile3Dint& tile,
  1300.                                         const ilConfig* config=NULL,
  1301.                                         int includeBorder=FALSE)
  1302.  
  1303.  
  1304.           This function generates an array of ilLockRequests corresponding to
  1305.           the specified "tile" in the image.  These requests can then be
  1306.           passed to lllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() to lock the pages
  1307.           comprising the tile.  If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE then all pages that
  1308.  
  1309.  
  1310.  
  1311.                                                                        PPPPaaaaggggeeee 22220000
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1319.  
  1320.  
  1321.  
  1322.           intersect the tile comprise the set.  Otherwise, the smallest set of
  1323.           pages that cover the tile comprises the set.  This distinction is
  1324.           relevant only if the image has non-zero page borders.  Generally,
  1325.           you should set _i_n_c_l_u_d_e_B_o_r_d_e_r to TRUE if you are generating the set
  1326.           for writing, and FALSE if you are generating the set for reading.
  1327.           The number of generated lock requests is returned in the reference
  1328.           parameter "count".  The returned ilLockRequest set is in nnnneeeewwww()'ed
  1329.           memory.  It is the responsibility of the caller to delete the set
  1330.           when no longer in use.
  1331.  
  1332.      ggggeeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(((())))
  1333.  
  1334.           int getMaxColormapLevels()
  1335.  
  1336.  
  1337.           This function returns the maximum color map level attribute set with
  1338.           sssseeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss().
  1339.  
  1340.      ggggeeeettttMMMMaaaaxxxxVVVVaaaalllluuuueeee(((())))
  1341.  
  1342.           double getMaxValue()
  1343.  
  1344.  
  1345.           Returns the maximum allowable value for this image object.
  1346.  
  1347.      ggggeeeettttMMMMiiiinnnnVVVVaaaalllluuuueeee(((())))
  1348.  
  1349.           double getMinValue()
  1350.  
  1351.  
  1352.           Returns the minimum allowable value for this image object.
  1353.  
  1354.      ggggeeeettttNNNNuuuummmmIIIInnnnppppuuuuttttssss(((())))
  1355.  
  1356.           int getNumInputs()
  1357.  
  1358.  
  1359.           Returns the number of images in this image's input (parent) list.
  1360.  
  1361.      ggggeeeettttOOOOrrrrddddeeeerrrr(((())))
  1362.  
  1363.           iflOrder getOrder()
  1364.  
  1365.  
  1366.           Returns the pixel channel order of this image. The enumerated type,
  1367.           _i_f_l_O_r_d_e_r, has members _i_f_l_I_n_t_e_r_l_e_a_v_e_d, _i_f_l_S_e_q_u_e_n_t_i_a_l, or _i_f_l_S_e_p_a_r_a_t_e
  1368.           to indicate how the pixel data is ordered.
  1369.  
  1370.           For _i_f_l_I_n_t_e_r_l_e_a_v_e_d, all pixel channels are stored adjacently.  For
  1371.           an RGB color image, this would be RGBRGBRGB, and so forth.  For
  1372.           _i_f_l_S_e_q_u_e_n_t_i_a_l, each pixel channel is stored as a separate line.  For
  1373.           an RGB color image, this is a line of Red, followed by a line of
  1374.  
  1375.  
  1376.  
  1377.                                                                        PPPPaaaaggggeeee 22221111
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1385.  
  1386.  
  1387.  
  1388.           Green, followed by a line of Blue for one line of RGB pixels.  For
  1389.           _i_f_l_S_e_p_a_r_a_t_e, each channel is stored in a separate page.  See the
  1390.           _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for more details.
  1391.  
  1392.      ggggeeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))
  1393.  
  1394.           void getPageBorder(iflXYZint& border)
  1395.           const iflXYZint& getPageBorder()
  1396.           int getPageBorderX()
  1397.           int getPageBorderY()
  1398.           int getPageBorderZ()
  1399.  
  1400.  
  1401.           Returns the page border size in an iflXYZint structure.
  1402.  
  1403.           The alternative methods provide access to the per-coordinate page
  1404.           border values.
  1405.  
  1406.      ggggeeeettttPPPPaaaaggggeeeeCCCCoooouuuunnnnttttssss(((())))
  1407.  
  1408.           void getPageCounts(int& nx, int& ny, int& nz, int& nc)
  1409.  
  1410.  
  1411.           Returns the number of pages required to cover the entire image
  1412.           extent in each of the _x, _y, _z, and _c dimensions
  1413.  
  1414.      ggggeeeettttPPPPaaaaggggeeeeDDDDeeeellllttttaaaa(((())))
  1415.  
  1416.           void getPageDelta(iflXYZCint& delta)
  1417.           void getPageDelta(int &nx, int &ny, int &nz, int &nc)
  1418.  
  1419.  
  1420.           Returns the effective page size with page borders removed.  It is
  1421.           computed by subtracting twice the page border size from the current
  1422.           page size.
  1423.  
  1424.      ggggeeeettttPPPPaaaaggggeeeeIIIInnnnddddiiiicccceeeessss(((())))
  1425.  
  1426.           void getPageIndices(int x, int y, int z, int c, int& ix,
  1427.                               int& iy, int& iz, int& ic)
  1428.  
  1429.  
  1430.           Return the indices of the image page containing the point (_x, _y, _z,
  1431.           _c).
  1432.  
  1433.      ggggeeeettttPPPPaaaaggggeeeeOOOOrrrriiiiggggiiiinnnn(((())))
  1434.  
  1435.           ilStatus getPageOrigin(int x, int y, int z, int c,
  1436.                                  int& px, int& py, int& pz, int& pc)
  1437.           ilStatus getPageOrigin(const iflXYZCint& pos, iflXYZCint& org)
  1438.           int getPageOriginX(int x)
  1439.           int getPageOriginY(int y)
  1440.  
  1441.  
  1442.  
  1443.                                                                        PPPPaaaaggggeeee 22222222
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1451.  
  1452.  
  1453.  
  1454.           int getPageOriginZ(int z)
  1455.           int getPageOriginC(int c)
  1456.  
  1457.  
  1458.           This method returns the origin of the page that contains the point
  1459.           passed in as _x, _y, _z, and _c.  The coordinates of the page are
  1460.           returned in _p_x, _p_y, _p_c, and _p_z.  The returned page coordinates may
  1461.           correspond to a page that does not actually reside within the image
  1462.           bounds if the passed pixel coordinates are also outside the image
  1463.           bounds.  If the image has page borders, then it is possible that
  1464.           more than one page contains the point.  In this case, the page with
  1465.           the greatest coordinate values is returned.
  1466.  
  1467.           If the image's status is not ilOKAY, then that status is returned
  1468.           and the page coordinates values are not set.  Otherwise, ilOKAY is
  1469.           returned.
  1470.  
  1471.           Alternative methods are provided to compute each of the page
  1472.           coordinates independently.
  1473.  
  1474.      ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((())))
  1475.  
  1476.           size_t getPageSize()
  1477.           size_t getPageSize(int& nx, int& ny)
  1478.           size_t getPageSize(int& nx, int& ny, int& nz, int& nc)
  1479.           size_t getPageSize(iflSize& pageSize)
  1480.           size_t getPageSize(iflSize& pageSize, iflOrientation ori)
  1481.           size_t getPageDimensions(iflSize& pageSize)
  1482.  
  1483.  
  1484.           Returns the image page size in bytes. This takes into account the
  1485.           number of channels per pixel and the channel data type.  The second
  1486.           and third versions also return the page size in the x, y, z, c
  1487.           dimensions in _n_x, _n_y, _n_z and _n_c.  The fourth version returns the
  1488.           page size in an iflSize structure, possibly transformed into the
  1489.           orientation specified in _o_r_i. The x and y page size will be
  1490.           transposed as needed, based on the orientation. See also the
  1491.           ilCacheImg man page.
  1492.  
  1493.           The ggggeeeettttPPPPaaaaggggeeeeDDDDiiiimmmmeeeennnnssssiiiioooonnnnssss method returns the page size in a standard
  1494.           (non-transposed) orientation.  This is useful if you are interested
  1495.           in the "width" or "height" of a page, independent of the data
  1496.           orientation.
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.                                                                        PPPPaaaaggggeeee 22223333
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1517.  
  1518.  
  1519.  
  1520.      ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeXXXX(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeYYYY(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeZZZZ(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeCCCC(((())))
  1521.  
  1522.           int getPageSizeX()
  1523.           int getPageSizeY()
  1524.           int getPageSizeZ()
  1525.           int getPageSizeC()
  1526.  
  1527.  
  1528.           Returns the image's page size in the _x-, _y-, _z-, _c-dimensions,
  1529.           respectively.
  1530.  
  1531.      ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeePPPPiiiixxxx(((())))
  1532.  
  1533.           int getPageSizePix()
  1534.  
  1535.  
  1536.           Returns the image page size in pixels.  See also ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee().
  1537.  
  1538.      ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeVVVVaaaallll(((())))
  1539.  
  1540.           int getPageSizeVal()
  1541.  
  1542.  
  1543.           Returns the image page size in terms of discrete values. This takes
  1544.           into account the number of channels per pixel that is, it returns
  1545.           ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeePPPPiiiixxxx() * number of channels in the page).  See also
  1546.           ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee().
  1547.  
  1548.      ggggeeeettttPPPPiiiixxxxeeeellll(((())))
  1549.  
  1550.           ilStatus getPixel(int x, int y, iflPixel& pix)
  1551.  
  1552.  
  1553.           This function is the 2-D version of ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD().  It calls
  1554.           ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD() with _z set to 0.  See also ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD().
  1555.  
  1556.      ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD(((())))
  1557.  
  1558.           ilStatus getPixel3D(int x, int y, int z, iflPixel& pix)
  1559.  
  1560.  
  1561.           Gets the iflPixel at the point specified by _x, _y, and _z and returns
  1562.           it in _p_i_x.  An iflPixel specifies the channel data type, the number
  1563.           of channels per pixel and a pointer to the pixel data.  This
  1564.           function calls ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the tile size _n_x, _n_y, _n_z set to
  1565.           1. Returns ilOKAY upon successful completion.  See also ggggeeeettttPPPPiiiixxxxeeeellll(),
  1566.           ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and sssseeeettttPPPPiiiixxxxeeeellll3333DDDD().
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.                                                                        PPPPaaaaggggeeee 22224444
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1583.  
  1584.  
  1585.  
  1586.      ggggeeeettttPPPPrrrriiiioooorrrriiiittttyyyy(((())))
  1587.  
  1588.           int getPriority()
  1589.  
  1590.  
  1591.           This function gets the current cache priority of this image.  See
  1592.           sssseeeettttPPPPrrrriiiioooorrrriiiittttyyyy() for more details.
  1593.  
  1594.      ggggeeeettttSSSSccccaaaalllleeeeMMMMaaaaxxxx(((())))
  1595.  
  1596.           double getScaleMax()
  1597.  
  1598.  
  1599.           Returns the maximum value used for scaling during color conversion
  1600.           and display.  By default the maximum scale value tracks the maximum
  1601.           value of the image. However, it may be set with sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx().
  1602.  
  1603.      ggggeeeettttSSSSccccaaaalllleeeeMMMMiiiinnnn(((())))
  1604.  
  1605.           double getScaleMin()
  1606.  
  1607.  
  1608.           Returns the minimum value used for scaling during color conversion
  1609.           and display.  By default the minimum scale value tracks the minimum
  1610.           value of the image. However, it may be set with sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx().
  1611.  
  1612.      ggggeeeettttSSSSiiiizzzzeeee(((())))
  1613.  
  1614.           void getSize(iflSize& size)
  1615.           void getSize(iflSize& size, iflOrientation workOri)
  1616.           const iflSize& getSize()
  1617.  
  1618.  
  1619.           The first version returns the image size in the iflSize object
  1620.           referenced by _s_i_z_e.  An iflSize has integer member variables _x, _y,
  1621.           _z, and _c to hold each dimension of the image.  The second version
  1622.           first maps the image's size to the orientation indicated by _w_o_r_k_O_r_i.
  1623.           If the indicated orientation is transposed relative to the image's
  1624.           orientation, then the _x and _y sizes are swapped in the returned
  1625.           size.  See also ggggeeeettttXXXXSSSSiiiizzzzeeee(), ggggeeeettttYYYYSSSSiiiizzzzeeee(), ggggeeeettttZZZZSSSSiiiizzzzeeee() and ggggeeeettttCCCCSSSSiiiizzzzeeee().
  1626.           The third version returns a reference to the actual _s_i_z_e attribute
  1627.           of this image object.
  1628.  
  1629.      ggggeeeettttSSSSttttrrrriiiiddddeeeessss(((())))
  1630.  
  1631.           void getStrides(int& xs, int& ys, int& zs, int& cs,
  1632.                     int nx=0, int ny=0, int nz=0, int nc=0,
  1633.                      iflOrder ord=iflOrder(0))
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.                                                                        PPPPaaaaggggeeee 22225555
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1649.  
  1650.  
  1651.  
  1652.           Returns by reference the x stride (_x_s), y stride (_y_s), z stride
  1653.           (_z_s), channel stride (_c_s) and number of channels (_n_c). The buffer
  1654.           strides are used to step through a data buffer of size _n_x by _n_y that
  1655.           contains pixels with channel order _o_r_d.  The default order is
  1656.           _n_u_m_i_f_l_O_r_d_e_r_s and causes the current data order to be used.
  1657.  
  1658.           The x stride is used to step from one pixel to the next in the same
  1659.           row. The y stride is used to step to the next pixel in the same
  1660.           column. For 3D images, the z stride is used to step to the next
  1661.           pixel along the z axis at the same xy location. A multiplier _n can
  1662.           be used to move _n pixels in a desired direction within the data
  1663.           buffer.
  1664.  
  1665.           The channel stride is used to step to the next channel of the same
  1666.           pixel.
  1667.  
  1668.      ggggeeeettttTTTTiiiilllleeee(((())))
  1669.  
  1670.           ilStatus getTile(int x, int y, int nx, int ny,
  1671.                            void* data, const ilConfig* config=NULL)
  1672.           ilStatus getTile3D(int x, int y, int z, int nx, int ny, int nz,
  1673.                              void* data, const ilConfig* config=NULL)
  1674.           ilStatus getSubTile(int x, int y, int nx, int ny, void* data,
  1675.                         int dx, int dy, int dnx, int dny,
  1676.                         const ilConfig* config=NULL)
  1677.           ilStatus getSubTile3D(int x, int y, int z, int nx, int ny, int nz,
  1678.                                 void* data, int dx, int dy, int dz,
  1679.                           int dnx, int dny, int dnz,
  1680.                           const ilConfig* config=NULL)
  1681.  
  1682.  
  1683.           These functions queue a tile read request with qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and
  1684.           wait for it to complete.  The source tile origin is specified by _x,
  1685.           _y, _z, and the tile size is specified by _n_x, _n_y, _n_z.
  1686.  
  1687.           The 2D versions, ggggeeeettttTTTTiiiilllleeee() and ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee(), call the corresponding
  1688.           3D routine with _z set to zero and _n_z set to one.
  1689.  
  1690.           ggggeeeettttTTTTiiiilllleeee() and ggggeeeettttTTTTiiiilllleeee3333DDDD() assume that the destination buffer has the
  1691.           same offset and size as the request; ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee() and ggggeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD()
  1692.           allow the destination buffer to have a different position and size,
  1693.           specified by _d_x, _d_y, _d_n_x, and _d_n_y (and _d_z and _d_n_z for the 3D
  1694.           version.)
  1695.  
  1696.           Optionally, an ilConfig object pointed to by _c_o_n_f_i_g can be used to
  1697.           specify the desired data type, order, number of channels and channel
  1698.           order. _c_o_n_f_i_g is NULL by default, meaning that no conversion is
  1699.           performed on the input data.
  1700.  
  1701.           See also qqqqGGGGeeeettttTTTTiiiilllleeee3333DDDD(), qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and ggggeeeettttCCCCoooonnnnffffiiiigggg().
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.                                                                        PPPPaaaaggggeeee 22226666
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1715.  
  1716.  
  1717.  
  1718.      ggggeeeettttWWWWiiiiddddtttthhhh(((())))
  1719.  
  1720.           int getWidth()
  1721.  
  1722.  
  1723.           Returns the width of _i_m_g.  See also getHeight() and getXsize().
  1724.  
  1725.      ggggeeeettttXXXXssssiiiizzzzeeee(((())))
  1726.  
  1727.           int getXsize()
  1728.  
  1729.  
  1730.           Returns the size of the image in the _x-dimension, measured in
  1731.           pixels.
  1732.  
  1733.           Note that by definition in the IL, the _x-dimension is always the
  1734.           fastest varying dimension in image memory order.  I.e. the scanline
  1735.           dimension.  In non-transposed orientations, scanlines are oriented
  1736.           horizontally with respect to the image.  Thus, for non-transposed
  1737.           orientations getXsize() returns the _w_i_d_t_h of the image.  In
  1738.           transposed orientations the scanlines are oriented vertically with
  1739.           respect to the image and getXsize() returns the _h_e_i_g_h_t of the image.
  1740.           Transposed orientations are: _i_f_l_L_e_f_t_U_p_p_e_r_O_r_i_g_i_n,
  1741.           _i_f_l_R_i_g_h_t_U_p_p_e_r_O_r_i_g_i_n, _i_f_l_R_i_g_h_t_L_o_w_e_r_O_r_i_g_i_n and _i_f_l_L_e_f_t_L_o_w_e_r_O_r_i_g_i_n.
  1742.           See also ggggeeeettttHHHHeeeeiiiigggghhhhtttt(), ggggeeeettttWWWWiiiiddddtttthhhh(), ggggeeeettttSSSSiiiizzzzeeee(), ggggeeeettttYYYYssssiiiizzzzeeee() and
  1743.           ggggeeeettttZZZZssssiiiizzzzeeee().
  1744.  
  1745.      ggggeeeettttYYYYssssiiiizzzzeeee(((())))
  1746.  
  1747.           int getYsize()
  1748.  
  1749.  
  1750.           Returns the size of the image in the _y-dimension, measured in
  1751.           pixels.  See also ggggeeeettttHHHHeeeeiiiigggghhhhtttt(), ggggeeeettttWWWWiiiiddddtttthhhh(), ggggeeeettttSSSSiiiizzzzeeee(), ggggeeeettttXXXXssssiiiizzzzeeee() and
  1752.           ggggeeeettttZZZZssssiiiizzzzeeee().
  1753.  
  1754.      ggggeeeettttZZZZssssiiiizzzzeeee(((())))
  1755.  
  1756.           int getZsize()
  1757.  
  1758.  
  1759.           Returns the size of the image in the _z-dimension. This value can be
  1760.           thought of as representing the number of _x_y planes in an image.  For
  1761.           two-dimensional images, the returned value is 1.  Refer to the
  1762.           _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for more details.  See also
  1763.           ggggeeeettttSSSSiiiizzzzeeee(), ggggeeeettttXXXXssssiiiizzzzeeee() and ggggeeeettttYYYYssssiiiizzzzeeee().
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.                                                                        PPPPaaaaggggeeee 22227777
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1781.  
  1782.  
  1783.  
  1784.      hhhhaaaassssPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))
  1785.  
  1786.           int hasPageBorder()
  1787.  
  1788.  
  1789.           This functions returns TRUE if the image has page borders, FALSE
  1790.           otherwise.
  1791.  
  1792.      hhhhaaaassssPPPPaaaaggggeeeessss(((())))
  1793.  
  1794.           int hasPages()
  1795.  
  1796.  
  1797.           This virtual function should be defined by derived classes to return
  1798.           TRUE if the class implements paging.  The default implementation
  1799.           returns FALSE.
  1800.  
  1801.      iiiinnnnhhhheeeerrrriiiitttt(((())))
  1802.  
  1803.           int inherit(int typeMask=0, int orderMask=0, int allowDiffColorModels=FALSE)_p_r_o_t_e_c_t_e_d
  1804.  
  1805.  
  1806.           This is a convenience method that can be called in an iiiillllIIIImmmmaaaaggggeeee-
  1807.           derived subclass' rrrreeeesssseeeetttt() method to inherit standard image
  1808.           attributes such as page size, data type, orientation, and so forth,
  1809.           from the image's inputs.  Only those attributes that have not been
  1810.           explicitly set are affected.  The following attributes are set by
  1811.           inherit:
  1812.  
  1813.               color model
  1814.               data type
  1815.               data order
  1816.               data orientation
  1817.               color map
  1818.               size
  1819.               page size
  1820.               min and max values
  1821.  
  1822.  
  1823.           The parameters _t_y_p_e_M_a_s_k and _o_r_d_e_r_M_a_s_k, if non-zero, limit the
  1824.           possible inherited data type and order to the subsets specified in
  1825.           the respective masks.  If _a_l_l_o_w_D_i_f_f_C_o_l_o_r_M_o_d_e_l_s is _T_R_U_E, then the
  1826.           image is allowed to have a different color model than its inputs.
  1827.           Normally, this is not allowed, and a color converting image is
  1828.           automatically inserted to coerce the input color models to the
  1829.           image's color model.
  1830.  
  1831.      iiiinnnniiiittttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  1832.  
  1833.           void initColorModel(int noAlpha=FALSE)                        _p_r_o_t_e_c_t_e_d
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.                                                                        PPPPaaaaggggeeee 22228888
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1847.  
  1848.  
  1849.  
  1850.           Initializes the color model based on the number of channels if it
  1851.           has never been explicitly set with sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll().  Images with one
  1852.           channel are set to _i_f_l_L_u_m_i_n_a_n_c_e.  Images with two channel are set to
  1853.           _i_f_l_L_u_m_i_n_a_n_c_e_A_l_p_h_a.  Images with three channels are set to _i_f_l_R_G_B.
  1854.           Images with four channels are set to _i_f_l_R_G_B_A by default.  If _n_o_A_l_p_h_a
  1855.           is true, then images with two or four channels are set to
  1856.           _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l instead.  All other cases are set to
  1857.           _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l.
  1858.  
  1859.      iiiinnnniiiittttMMMMiiiinnnnMMMMaaaaxxxx(((())))
  1860.  
  1861.           void initMinMax(int force=FALSE)                              _p_r_o_t_e_c_t_e_d
  1862.  
  1863.  
  1864.           Initializes the minimum and maximum value of a pixel based on the
  1865.           data type (for example, 0 and 255) for unsigned char data.  _f_o_r_c_e is
  1866.           FALSE by default, indicating that the minimum and maximum values
  1867.           should not be forced to change if they have already been set.
  1868.  
  1869.      iiiinnnniiiittttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((())))
  1870.  
  1871.           void initPageSize(const iflSize& pageSize)                 _p_r_o_t_e_c_t_e_d
  1872.           void initPageSize(int nx, int ny, int nz, int nc) _p_r_o_t_e_c_t_e_d
  1873.  
  1874.  
  1875.           Initializes the page size to _p_a_g_e_S_i_z_e only if it has not been
  1876.           previously set (separate flags track whether x/y, z and c values
  1877.           have been set).  The member _p_a_g_e_S_i_z_e_B_y_t_e_s is also computed to match
  1878.           the new page dimensions and the image's data type.
  1879.  
  1880.      iiiinnnniiiittttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(((())))
  1881.  
  1882.           void initScaleMinMax(int force=FALSE)
  1883.  
  1884.  
  1885.           Initializes the scale minimum and maximum to the image minimum and
  1886.           maximum values. If scale minimum and maximum have already been set,
  1887.           they are unchanged, unless _f_o_r_c_e is TRUE. The scale minimum and
  1888.           maximum are used during color conversion and display.  By default,
  1889.           the scale minimum and maximum track the image minimum and maximum
  1890.           values.
  1891.  
  1892.      iiiissssCCCCoooolllloooorrrrIIIImmmmgggg(((())))
  1893.  
  1894.           int isColorImg()
  1895.  
  1896.  
  1897.           Returns TRUE if the image is a color converter that was created with
  1898.           ggggeeeettttCCCCoooolllloooorrrrIIIImmmmgggg().  Otherwise FALSE is returned.
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.                                                                        PPPPaaaaggggeeee 22229999
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1913.  
  1914.  
  1915.  
  1916.      iiiissssIIIInnnntttteeeeggggrrrraaaallll(((())))
  1917.  
  1918.           int isIntegral()
  1919.  
  1920.  
  1921.           Returns TRUE if the image's data type is an integral valued type. If
  1922.           it is a floating point type, then FALSE is returned. This function
  1923.           is based on the standalone function, iiiiffffllllDDDDaaaattttaaaaIIIIssssIIIInnnntttteeeeggggrrrraaaallll() (see the
  1924.           iflDataSize man page).
  1925.  
  1926.      iiiissssMMMMiiiirrrrrrrroooorrrrOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((())))
  1927.  
  1928.           int isMirrorOrientation(iflOrientation otherOri,
  1929.                             iflOrientation workOri=iflOrientation(0))
  1930.  
  1931.  
  1932.           The routine returns _T_R_U_E if _o_t_h_e_r_O_r_i is a mirror image of _w_o_r_k_O_r_i.
  1933.           If _w_o_r_k_O_r_i is defaulted, the orientation of the image is used
  1934.           instead.  This can be useful when implementing operations that have
  1935.           calculations that depend on a particular frame of reference.  For
  1936.           example, when implementing an image rotation operator, the angle can
  1937.           need to be negated to produce consistent results on inputs of
  1938.           arbitrary orientation.
  1939.  
  1940.      iiiissssPPPPaaaarrrrttttiiiiaaaallllPPPPaaaaggggeeee(((())))
  1941.  
  1942.           int isPartialPage(int x, int y, int z, int c)          _p_r_o_t_e_c_t_e_d
  1943.  
  1944.  
  1945.           Returns TRUE if the page referenced by the coordinates (_x, _y, _z, _c)
  1946.           is only partially filled with image data; that is, if the page
  1947.           straddles the edge of the image.
  1948.  
  1949.      iiiissssSSSSiiiiggggnnnneeeedddd(((())))
  1950.  
  1951.           int isSigned()
  1952.  
  1953.  
  1954.           Returns TRUE if the image's data type is signed. If it is unsigned,
  1955.           then FALSE is returned. This function is based on the standalone
  1956.           function, iiiiffffllllDDDDaaaattttaaaaIIIIssssSSSSiiiiggggnnnneeeedddd() (see the iflDataSize man page).
  1957.  
  1958.      iiiissssVVVVaaaalllliiiiddddPPPPaaaaggggeeee(((())))
  1959.  
  1960.           int isValidPage(int x, int y, int z, int c)            _p_r_o_t_e_c_t_e_d
  1961.  
  1962.  
  1963.           Returns TRUE if the pixel referenced by the coordinates (_x, _y, _z, _c)
  1964.           is within the image boundary.  The image boundary is defined to be
  1965.           within
  1966.           (-_x_P_a_g_e_B_o_r_d_e_r ,-_y_P_a_g_e_B_o_r_d_e_r, -_z_P_a_g_e_B_o_r_d_e_r, _0) and (_s_i_z_e._x, _s_i_z_e._y,
  1967.           _s_i_z_e._z, _s_i_z_e._c).
  1968.  
  1969.  
  1970.  
  1971.                                                                        PPPPaaaaggggeeee 33330000
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  1979.  
  1980.  
  1981.  
  1982.      iiiissssWWWWrrrriiiittttaaaabbbblllleeee(((())))
  1983.  
  1984.           int isWritable()
  1985.  
  1986.  
  1987.           This function returns TRUE if the image can be written to; FALSE
  1988.           otherwise.
  1989.  
  1990.      hhhhwwwwDDDDeeeeffffiiiinnnneeee(((())))
  1991.  
  1992.           virtual ilHwOp* hwDefine()                   _p_r_o_t_e_c_t_e_d
  1993.  
  1994.  
  1995.           This virtual returns a new'ed ilHwOp object that specifies the
  1996.           hardware-accelerated implementation of the operation.  Currently,
  1997.           user-defined hardware acceleration is unsupported.  Therefore, you
  1998.           should not override this virtual method.  For more information on
  1999.           hardware acceleration, see ilHwDefs.h and the Programmer's Guide.
  2000.  
  2001.      hhhhwwwwGGGGeeeettttPPPPaaaassssssss(((())))
  2002.  
  2003.           virtual ilHwPass* hwGetPass(const ilHwTarget& target,
  2004.                                       int force=FALSE)
  2005.  
  2006.  
  2007.           This function returns a ilHwPass object for a given _t_a_r_g_e_t (defining
  2008.           the graphics server and visual class).  This ilHwPass object
  2009.           specifies how the operation is performed in the graphics hardware.
  2010.           Currently, user-defined hardware acceleration is unsupported.
  2011.           Therefore, you should not override this virtual method.  For more
  2012.           information on hardware acceleration, see ilHwDefs.h and the
  2013.           Programmer's Guide.
  2014.  
  2015.      lllloooocccckkkkPPPPaaaaggggeeee(((())))
  2016.  
  2017.           ilPage* lockPage(int x, int y, int z, int c, ilStatus& status,
  2018.                            int mode=ilLMread)
  2019.  
  2020.  
  2021.           This is the single page version of lockPageSet(). It returns a
  2022.           pointer to the page containing the pixel _x, _y, _z, _c.  The _s_t_a_t_u_s
  2023.           value specifies the error code if a page could
  2024.            not be referenced.  If the function succeeds, _s_t_a_t_u_s is set to
  2025.           ilOKAY. See qLockPageSet() for a description of _m_o_d_e and possible
  2026.           _s_t_a_t_u_s returns. See also _u_n_l_o_c_k_P_a_g_e().
  2027.  
  2028.      lllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((())))
  2029.  
  2030.           ilStatus lockPageSet(ilLockRequest* set, int mode=ilLMread,
  2031.                                int count=1, ilCallback* perPageCb=NULL)
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.                                                                        PPPPaaaaggggeeee 33331111
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2045.  
  2046.  
  2047.  
  2048.           This function queues a list of lock page requests with
  2049.           qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and waits for them to complete.  Each ilLockRequest
  2050.           in the _s_e_t array is locked and a pointer to the page is deposited in
  2051.           the corresponding ilLockRequest.  As a consequence, this causes all
  2052.           the image data for the pages to be computed.  If all of the requests
  2053.           succeed, ilOKAY is returned.  If one or more fail, an error code
  2054.           will be returned and the ilLockRequest structures will contain
  2055.           individual status codes.  At a later time, uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() can be
  2056.           called to release the set of pages.
  2057.  
  2058.           See qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() for more information.
  2059.  
  2060.      lllloooocccckkkkTTTTiiiilllleeee(((())))
  2061.  
  2062.           ilLockedTile* lockTile(int x, int y, int nx, int ny,
  2063.                          const ilConfig* config=NULL, int mode=ilLMread)
  2064.  
  2065.  
  2066.           This is the 2-D version of lockTile3D().  It calls lockTile3D() with
  2067.           _z set to 0 and _n_z set to 1.
  2068.  
  2069.      lllloooocccckkkkTTTTiiiilllleeee3333DDDD(((())))
  2070.  
  2071.           ilLockedTile* lockTile3D(int x, int y, int z, int nx, int ny, int nz,
  2072.                          const ilConfig* config=NULL, int mode=ilLMread)
  2073.  
  2074.  
  2075.           This function causes the tiles that intersect the indicated image
  2076.           volume to be ``locked.''  This is accomplished by ``locking'' the
  2077.           image pages which store the data for the affected tiles.  These
  2078.           pages remain locked until the ilLockedTile object returned by
  2079.           lockTile3D() is deleted.  The status result of the function can be
  2080.           retrieved by calling the getStatus() method of the returned
  2081.           ilLockedTile object.
  2082.  
  2083.           ``Locking'' is implemented by a virtual function in ilImage.  In the
  2084.           default implementation, copies of the affected pages are computed
  2085.           and stored in locally allocated storage.  Some derived classes
  2086.           provide more interesting implementations which manage shared cache
  2087.           storage, etc.  One example is ilMemCacheImg.
  2088.  
  2089.      mmmmaaaappppFFFFlllliiiippppTTTTrrrraaaannnnssss(((())))
  2090.  
  2091.           iflOrientation mapFlipTrans(iflOrientation fromOrientation,
  2092.                                       iflFlip& flip, int& transXY,
  2093.                                       iflOrientation workOrientation=iflOrientation(0))
  2094.  
  2095.  
  2096.           This function determines the flips and/or transpositions required to
  2097.           map from _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to _w_o_r_k_O_r_i_e_n_t_a_t_i_o_n (if the work orientation
  2098.           is zero, the image's orientation is used).  The return value is the
  2099.           work orientation.  The required _f_l_i_p and _t_r_a_n_s_X_Y values are also
  2100.  
  2101.  
  2102.  
  2103.                                                                        PPPPaaaaggggeeee 33332222
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2111.  
  2112.  
  2113.  
  2114.           returned.
  2115.  
  2116.      mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((())))
  2117.  
  2118.           virtual ilStatus mapFromInput(float& u, float& v, float& w,
  2119.                                         float x, float y, float z, int idx=0)
  2120.           ilStatus mapFromInput(float& u, float& v, float x, float y, int idx=0)
  2121.           ilStatus mapFromInput(iflXYfloat& uv, const iflXYfloat& xy, int idx=0)
  2122.  
  2123.  
  2124.           Maps a point, (_x,_y,_z), from the _i_d_x'th input image's output
  2125.           coordinate space to this image's output coordinate space and returns
  2126.           the result in (_u,_v,_w).  This virtual function's default
  2127.           implementation is the identity mapping.  It can be overridden in
  2128.           derived classes (like ilWarpImg) to take into account any address
  2129.           manipulations that an operator can perform.  The overloaded versions
  2130.           provide 2D address mapping, which is sufficient for most
  2131.           applications.  Note that the IL does not yet support images with
  2132.           non-identity coordinate mappings in the z dimension, and all
  2133.           coordinates (input and output) are described in the orientation of
  2134.           this image. See also mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))).
  2135.  
  2136.      mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((())))
  2137.  
  2138.           ilStatus mapFromSource(float& u, float& v, float& w, float x,
  2139.                                  float y, float z)
  2140.           ilStatus mapFromSource(float& u, float& v, float x, float y)
  2141.           ilStatus mapFromSource(iflXYfloat& self, const iflXYfloat& src)
  2142.  
  2143.  
  2144.           Maps a point, (_x,_y,_z), in the ultimate source image's input
  2145.           coordinate space to this image's output coordinate space and returns
  2146.           the result in (_u,_v,_w).  Both points are defined in this image's
  2147.           orientation. One possible use for this is to determine where to plot
  2148.           annotation that is tied to the source image when zooming and
  2149.           rotating an image.  The ilView function, sssseeeettttLLLLoooocccc(((()))), also uses this
  2150.           function to position a location in the source image of an operator
  2151.           chain at the center of the viewed region.  The overloaded versions
  2152.           provide 2D address mapping, which is sufficient for most
  2153.           applications.  Note that the IL does not yet support images with
  2154.           non-identity coordinate mappings in the z dimension.  See also
  2155.           mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))) and the ilView man page.
  2156.  
  2157.      mmmmaaaappppSSSSiiiizzzzeeee(((())))
  2158.  
  2159.           void mapSize(iflOrientation fromOri, int& x, int& y,
  2160.                        iflOrientation workOri=iflOrientation(0))
  2161.  
  2162.  
  2163.           Transposes the _x and _y size as needed, based on _f_r_o_m_O_r_i and _w_o_r_k_O_r_i.
  2164.           If _w_o_r_k_O_r_i is 0, then the image's orientation is used.
  2165.  
  2166.  
  2167.  
  2168.  
  2169.                                                                        PPPPaaaaggggeeee 33333333
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2177.  
  2178.  
  2179.  
  2180.      mmmmaaaappppOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((())))
  2181.  
  2182.           iflOrientation mapOrientation(int flipX, int flipY, int transXY=FALSE)
  2183.  
  2184.  
  2185.           The function returns the orientation that results from applying the
  2186.           flips and transpose requested to the image's orientation.  If _f_l_i_p_X
  2187.           is TRUE, the _x dimension is flipped.  If _f_l_i_p_Y is TRUE, the _y
  2188.           dimension is flipped.  If _t_r_a_n_s_X_Y is TRUE, the _x and _y dimensions
  2189.           are transposed.
  2190.  
  2191.      mmmmaaaappppTTTTiiiilllleeee(((())))
  2192.  
  2193.           void mapTile(iflOrientation fromOri, iflTile2Dint& tile,
  2194.                        iflOrientation workOri=iflOrientation(0))
  2195.           void mapTile(iflOrientation fromOri, iflTile2Dfloat& tile,
  2196.                        iflOrientation workOri=iflOrientation(0))
  2197.           void mapTile(iflOrientation fromOri, iflTile2Dint &tile, iflFlip &flip,
  2198.                        int &transXY, iflOrientation workOri=iflOrientation(0))
  2199.  
  2200.  
  2201.           The tile referenced by _t_i_l_e is mapped from orientation _f_r_o_m_O_r_i to
  2202.           the orientation _w_o_r_k_O_r_i.  If _w_o_r_k_O_r_i is defaulted, the orientation
  2203.           of the image is used instead.  The origin and size members of _t_i_l_e
  2204.           are recomputed to reflect this mapping.  The value returned in the
  2205.           iflFlip enumerated type, _f_l_i_p indicates whether the _x or the _y axis,
  2206.           or both, had to be flipped to effect the mapping.
  2207.  
  2208.           If no flipping was required, then _i_f_l_N_o_F_l_i_p is returned.  If the _x
  2209.           or _y axis was flipped, _i_f_l_X_F_l_i_p or _i_f_l_Y_F_l_i_p is returned.  If both
  2210.           axes were flipped, (_i_f_l_X_F_l_i_p | _i_f_l_Y_F_l_i_p) is returned. If, to effect
  2211.           the mapping, the x and y axes had to be interchanged (that is, the
  2212.           new x origin and size are the old y origin and size and the converse
  2213.           is true), then a 1 is returned in _t_r_a_n_s_X_Y; otherwise _t_r_a_n_s_X_Y is 0.
  2214.  
  2215.      mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((())))
  2216.  
  2217.           virtual ilStatus mapToInput(float& x, float& y, float& z,
  2218.                                   float u, float v, float w, int idx=0)
  2219.           ilStatus mapToInput(float& x, float& y, float u, float v, int idx=0)
  2220.           ilStatus mapToInput(iflXYfloat& xy, const iflXYfloat& uv, int idx=0)
  2221.  
  2222.  
  2223.           Maps a point, (_u,_v,_w), in this image's output coordinate space to
  2224.           the _i_d_x'th input image's output coordinate space and returns the
  2225.           result in (_x,_y,_z).  This virtual function's default implementation
  2226.           assumes the identity mapping.  It can be overridden in derived
  2227.           classes (like ilWarpImg) to take into account any address
  2228.           manipulations that an operator can perform.  The overloaded versions
  2229.           provide 2D address mapping, which is sufficient for most
  2230.           applications.  Note that the IL does not yet support images with
  2231.           non-identity coordinate mappings in the z dimension, and all points
  2232.  
  2233.  
  2234.  
  2235.                                                                        PPPPaaaaggggeeee 33334444
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2243.  
  2244.  
  2245.  
  2246.           are defined in the orientation of this image. See also
  2247.           mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))).
  2248.  
  2249.      mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((())))
  2250.  
  2251.           ilStatus mapToSource(float& x, float& y, float& z, float u,
  2252.               float v, float w)
  2253.           ilStatus mapToSource(float& x, float& y, float u, float v)
  2254.           ilStatus mapToSource(iflXYfloat& src, const iflXYfloat& self)
  2255.  
  2256.  
  2257.           Maps a point, (_u,_v,_w), in this image's output coordinate space to
  2258.           the ultimate source image's input coordinate space and returns the
  2259.           result in (_x,_y,_z).  All coordinates are defined in this image's
  2260.           orientation.  One possible use for this is to find the source image
  2261.           coordinates of a screen location in a zoomed and rotated image.  The
  2262.           ilView function, ggggeeeettttLLLLoooocccc(((()))), uses this function to accomplish this
  2263.           task.  The overloaded versions provide 2D address mapping, which is
  2264.           sufficient for most applications.  Note that the IL does not yet
  2265.           support images with non-identity coordinate mappings in the z
  2266.           dimension.  See also mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))) and the ilView
  2267.           man page.
  2268.  
  2269.      mmmmaaaappppXXXXYYYY(((())))
  2270.  
  2271.           void mapXY(iflOrientation fromOri, int& x, int& y,
  2272.                      iflOrientation workOri=iflOrientation(0))
  2273.           void mapXY(iflOrientation fromOri, float& x, float& y,
  2274.                      iflOrientation workOri=iflOrientation(0))
  2275.           void mapXYSign(iflOrientation fromOri, float& x, float& y,
  2276.                      iflOrientation workOri=iflOrientation(0))
  2277.  
  2278.  
  2279.           The (x,y) pair of values referenced by _x and _y is mapped from
  2280.           orientation _f_r_o_m_O_r_i to the orientation _w_o_r_k_O_r_i.  If _w_o_r_k_O_r_i is
  2281.           defaulted, the orientation of the image is used instead.  In the
  2282.           _i_l_M_a_p_X_Y_S_i_g_n function, if a flip in the _x or _y dimensions is required
  2283.           to transform between the two orienations, the _x and _y values are
  2284.           negated accordingly.  If a transpose is required, the _x and _y values
  2285.           are swapped.
  2286.  
  2287.      oooouuuuttttOOOOffffBBBBoooouuuunnnndddd(((())))
  2288.  
  2289.           int outOfBound(int x, int y)                                  _p_r_o_t_e_c_t_e_d
  2290.           int outOfBound(int x, int y, int z)                           _p_r_o_t_e_c_t_e_d
  2291.  
  2292.  
  2293.           Returns TRUE if the specified point is outside of the image.
  2294.           Provided as a convenience for derived classes.
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.                                                                        PPPPaaaaggggeeee 33335555
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2309.  
  2310.  
  2311.  
  2312.      qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg(((())))
  2313.  
  2314.           virtual ilStatus qCopyTileCfg(ilMpNode* parent, int x, int y, int z,
  2315.                                int nx, int ny, int nz, ilImage* other,
  2316.                                int ox, int oy, int oz,
  2317.                                const ilConfig* config=NULL,
  2318.                                ilMpManager** pMgr=NULL)
  2319.  
  2320.  
  2321.           This virtual function should be defined by derived classes to queue
  2322.           a request to copy a tile from the _o_t_h_e_r image to this image object.
  2323.           The tile is copied to location _x, _y, _z in this image; the tile size
  2324.           is specified by _n_x, _n_y, _n_z.  The source tile is at location _o_x, _o_y,
  2325.           _o_z in the _o_t_h_e_r image.  The _c_o_n_f_i_g parameter may be used to specify
  2326.           a channel list and/or offset (the other fields are ignored).
  2327.  
  2328.           If the _o_t_h_e_r image has a different data type or order than this
  2329.           image, then the data is converted as it is copied.  If the two
  2330.           image's color models are different, a color converter is chained
  2331.           onto the _o_t_h_e_r image UNLESS a channel list or offset is specified
  2332.           with _c_o_n_f_i_g; the channel re-ordering will be presumed to resolve any
  2333.           color model difference.
  2334.  
  2335.           The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a
  2336.           dependent node.  The MP manager for this queued operation will be
  2337.           returned via the _p_M_g_r parameter (if not NULL) and can then used to
  2338.           wait for completion, obtain a status code, and/or abort.  For more
  2339.           information on MP synchronization, see the ilMpManager man page.
  2340.  
  2341.      qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(((())))
  2342.  
  2343.           virtual ilStatus qFillTile3D(ilMpNode* parent, int x, int y, int z,
  2344.                               int nx, int ny, int nz, const void* data,
  2345.                               const ilConfig* config=NULL,
  2346.                               const iflTile3Dint* fillMask=NULL,
  2347.                               ilMpManager** pMgr=NULL);
  2348.  
  2349.  
  2350.           This virtual function should be defined by derived classes to queue
  2351.           a request to fill a tile at location _x, _y, _z of size _n_x, _n_y _n_z with
  2352.           a constant pixel value, defined by _d_a_t_a.  The ilConfig object,
  2353.           _c_o_n_f_i_g, (if not NULL) can specify a data type and order for the fill
  2354.           value as well as a channel list or offset.  If _c_o_n_f_i_g specifies an
  2355.           orientation, it is used to map the tile coordinates to the image's
  2356.           orientation.  The _f_i_l_l_M_a_s_k (if not NULL) defines a region within the
  2357.           fill area that is not to be filled; it should be specified in the
  2358.           same orientation as the tile.
  2359.  
  2360.           The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a
  2361.           dependent node.  The MP manager for this queued operation will be
  2362.           returned via the _p_M_g_r parameter (if not NULL) and can then used to
  2363.           wait for completion, obtain a status code, and/or abort.  For more
  2364.  
  2365.  
  2366.  
  2367.                                                                        PPPPaaaaggggeeee 33336666
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2375.  
  2376.  
  2377.  
  2378.           information on MP synchronization, see the ilMpManager man page.
  2379.  
  2380.      qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB(((())))
  2381.  
  2382.           virtual ilStatus qFillTileRGB(ilMpNode* parent, int x, int y, int z,
  2383.                                int nx, int ny, int nz,
  2384.                                float red, float green, float blue,
  2385.                                const iflTile3Dint* fillMask=NULL,
  2386.                                iflOrientation orientation=iflOrientation(0),
  2387.                                ilMpManager** pMgr=NULL);
  2388.  
  2389.  
  2390.           This virtual function should be defined to queue a fill tile request
  2391.           in a manner similar to qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(), except that the fill value is
  2392.           specified with _r_e_d, _g_r_e_e_n, _b_l_u_e pixel components.  The _o_r_i_e_n_t_a_t_i_o_n
  2393.           (if not zero) is used to map the tile and mask coordinates to the
  2394.           image's orientation.
  2395.  
  2396.      qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((())))
  2397.  
  2398.           virtual ilStatus qGetSubTile3D(ilMpNode* parent, int x, int y, int z,
  2399.                                 int nx, int ny, int nz, void*& data,
  2400.                                 int dx, int dy, int dz,
  2401.                                 int dnx, int dny, int dnz,
  2402.                                 const ilConfig* config=NULL,
  2403.                                 ilMpManager** pMgr=NULL);
  2404.  
  2405.  
  2406.           This virtual function should be defined by derived classes to queue
  2407.           a read request for an arbitrary rectangular tile of data.  The data
  2408.           should be returned in the buffer pointed to by _d_a_t_a.  The source
  2409.           tile origin is specified by _x, _y, _z, and the tile size is specified
  2410.           by _n_x, _n_y, _n_z.  The destination buffer origin _d_x, _d_y, _d_z and size
  2411.           _d_n_x, _d_n_y, _d_n_z may be different from the source tile; in this case,
  2412.           the source tile will be properly integrated into the destination
  2413.           buffer.
  2414.  
  2415.           The ilConfig object, _c_o_n_f_i_g, may be used to specify the data type,
  2416.           order, number of channels and channel order desired for the buffer.
  2417.           If _c_o_n_f_i_g is NULL (the default) then no conversion is performed.
  2418.           Otherwise, if the configuration specifies attributes different from
  2419.           those of the image, then the data is converted as it is copied into
  2420.           the buffer.
  2421.  
  2422.           The configuration may also include a channel list; it should have as
  2423.           many entries as there are channels in the buffer.  A -1  means no
  2424.           data is written for that channel. For example, if this image has
  2425.           four channels and the number of channels in _c_o_n_f_i_g is 3 and the
  2426.           channel list is (1, -1, 3), then channels 1 and 3 of this image are
  2427.           read into channels 0 and 2 of the buffer in the data type and order
  2428.           specified in _c_o_n_f_i_g. Channel 1 in the buffer remains unchanged. See
  2429.           also the ilConfig man page.
  2430.  
  2431.  
  2432.  
  2433.                                                                        PPPPaaaaggggeeee 33337777
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2441.  
  2442.  
  2443.  
  2444.           The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a
  2445.           dependent node.  The MP manager for this queued operation will be
  2446.           returned via the _p_M_g_r parameter (if not NULL) and can then used to
  2447.           wait for completion, obtain a status code, and/or abort.  For more
  2448.           information on MP synchronization, see the ilMpManager man page.
  2449.  
  2450.      qqqqGGGGeeeettttTTTTiiiilllleeee3333DDDD(((())))
  2451.  
  2452.           ilStatus qGetTile3D(ilMpNode* parent, int x, int y, int z,
  2453.                         int nx, int ny, int nz, void*& data,
  2454.                         const ilConfig* config=NULL, ilMpManager** pMgr=NULL)
  2455.  
  2456.  
  2457.           This function calls qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the destination tile
  2458.           position and size equal to that of the source tile.
  2459.  
  2460.      qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((())))
  2461.  
  2462.           virtual ilStatus qLockPageSet(ilMpNode* parent, ilLockRequest* set,
  2463.                                         int mode=ilLMread, int count=1,
  2464.                                         ilMpManager** pMgr=NULL,
  2465.                                         ilCallback* perPageCb=NULL)
  2466.  
  2467.  
  2468.           This virtual function should be defined by derived classes to queue
  2469.           a request to lock pages in memory.
  2470.  
  2471.           The _s_e_t parameter is a pointer to an array of _c_o_u_n_t ilLockRequest
  2472.           structures:
  2473.  
  2474.                _s_t_r_u_c_t _i_l_L_o_c_k_R_e_q_u_e_s_t : _p_u_b_l_i_c _i_l_X_Y_Z_C_S_i_n_t {
  2475.                    _i_l_S_t_a_t_u_s _s_t_a_t_u_s;
  2476.                    _i_l_P_a_g_e* _p_a_g_e;
  2477.                    _v_o_i_d _i_n_i_t(_i_n_t _X, _i_n_t _Y, _i_n_t _Z, _i_n_t _C);
  2478.                };
  2479.  
  2480.           Each ilLockRequest structure specifies a request for a pointer to
  2481.           the page containing the pixel _X, _Y, _Z, _C.  After the lock request
  2482.           completes each of the _s_t_a_t_u_s codes will be filled in and _p_a_g_e will
  2483.           point at the page containing the requested pixel.  If _s_t_a_t_u_s is not
  2484.           ilOKAY or _X, _Y, _Z, _C references an invalid page, _p_a_g_e will be NULL.
  2485.  
  2486.           The _m_o_d_e parameter is a logical OR of the following mode values:
  2487.  
  2488.                _n_a_m_e           _b_i_t_s     _m_e_a_n_i_n_g
  2489.                _________________________________________________________
  2490.                ilLMpriority   0x0ff    cache priority: 0(low) -> 7(high)
  2491.                ilLMread       0x100    read access
  2492.                ilLMwrite      0x200    write access (mark dirty)
  2493.                ilLMseek       0x400    load into cache without locking
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.                                                                        PPPPaaaaggggeeee 33338888
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2507.  
  2508.  
  2509.  
  2510.                ilLMfail       0x800    succeed only if resident
  2511.                ilLMforceMP    0x1000   force MP manager to be created
  2512.  
  2513.           If _m_o_d_e includes ilLMfail, then the status will be set to
  2514.           ilNOTRESIDENT if the page is not resident in cache, instead of
  2515.           forcing the page to be made resident.  See the header file
  2516.           <_i_l/_i_l_E_r_r_o_r._h> for other status values.
  2517.  
  2518.           In the default implementation in the ilImage base class, copies of
  2519.           pages are returned in locally allocated memory.  Subsequent calls to
  2520.           lock the same pages will return new copies.  This default
  2521.           implementation ignores the _m_o_d_e parameter.  Some derived classes
  2522.           provide more interesting implementations which manage shared cache
  2523.           storage, etc.  One example is ilMemCacheImg.
  2524.  
  2525.           The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a
  2526.           dependent node.  The MP manager for this queued operation will be
  2527.           returned via the _p_M_g_r parameter (if not NULL) and can then used to
  2528.           wait for completion, obtain a status code, and/or abort.  For more
  2529.           information on MP synchronization, see the ilMpManager man page.
  2530.  
  2531.           Alternatively (or in addition), an ilPage callback, _p_e_r_P_a_g_e_C_b, can
  2532.           be specified; if not NULL, it will be invoked as each page is locked
  2533.           (see the ilPage man page for info on how to declare a paging
  2534.           callback).
  2535.  
  2536.      qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((())))
  2537.  
  2538.           virtual ilStatus qSetSubTile3D(ilMpNode* parent, int x, int y, int z,
  2539.                                          int nx, int ny, int nz, const void* data,
  2540.                                          int dx, int dy, int dz,
  2541.                                          int dnx, int dny, int dnz,
  2542.                                          const ilConfig* config=NULL,
  2543.                                          ilMpManager** pMgr=NULL)
  2544.  
  2545.  
  2546.           This virtual function should be defined by derived classes to queue
  2547.           a request to write an arbitrary tile of data taken from the buffer
  2548.           pointed to by _d_a_t_a.  The image tile origin is specified by _x, _y, _z,
  2549.           and the tile size is specified by _n_x, _n_y, _n_z.  The source buffer's
  2550.           origin _d_x, _d_y, _d_z and size _d_n_x, _d_n_y, _d_n_z may be different from the
  2551.           image tile; in this case, only the intersection of the two tiles is
  2552.           copied.
  2553.  
  2554.           The ilConfig object, _c_o_n_f_i_g, may be used to specify the data type,
  2555.           order, color model, number of channels and channel order of the
  2556.           buffer. If _c_o_n_f_i_g is NULL (the default) then no conversion is
  2557.           performed.  Otherwise, if the configuration specifies attributes
  2558.           different from those of the image, then the data is converted as it
  2559.           is written to the image.
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.                                                                        PPPPaaaaggggeeee 33339999
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2573.  
  2574.  
  2575.  
  2576.           The configuration may also include a channel list; it should have as
  2577.           many entries as there are channels in the buffer.  A -1  means no
  2578.           data is written for that channel. For example, if this image has
  2579.           four channels and the number of channels in _c_o_n_f_i_g is 3 and the
  2580.           channel list is (1, -1, 3), then channels 1 and 3 of this image are
  2581.           read into channels 0 and 2 of the buffer in the data type and order
  2582.           specified in _c_o_n_f_i_g. Channel 1 in the buffer remains unchanged. See
  2583.           also the ilConfig man page.
  2584.  
  2585.           The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a
  2586.           dependent node.  The MP manager for this queued operation will be
  2587.           returned via the _p_M_g_r parameter (if not NULL) and can then used to
  2588.           wait for completion, obtain a status code, and/or abort.  For more
  2589.           information on MP synchronization, see the ilMpManager man page.
  2590.  
  2591.           This is a virtual function and should be defined by derived classes.
  2592.           See also sssseeeettttTTTTiiiilllleeee(), and ggggeeeettttCCCCoooonnnnffffiiiigggg().
  2593.  
  2594.      qqqqSSSSeeeettttTTTTiiiilllleeee3333DDDD(((())))
  2595.  
  2596.           ilStatus qSetTile3D(ilMpNode* parent, int x, int y, int z,
  2597.                               int nx, int ny, int nz, void* data,
  2598.                               const ilConfig* config=NULL, ilMpManager** pMgr=NULL)
  2599.  
  2600.  
  2601.           This function is a call-through to qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the buffer
  2602.           tile position and size equal to the image tile position and size.
  2603.  
  2604.      rrrreeeemmmmoooovvvveeeeIIIInnnnppppuuuutttt(((())))
  2605.  
  2606.           ilStatus removeInput(int idx = 0)
  2607.  
  2608.  
  2609.           Removes the image at index _i_d_x from the input (parent) list. If
  2610.           successful, ilOKAY is returned. The default index is 0.
  2611.  
  2612.      sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((())))
  2613.  
  2614.           ilStatus setColormap(const iflColormap &cmap)
  2615.  
  2616.  
  2617.           Sets the image's color map to the given iflColormap.  If successful,
  2618.           ilOKAY is returned.  See also ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp() and iflColormap.
  2619.  
  2620.      sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  2621.  
  2622.           ilStatus setColorModel(iflColorModel c)
  2623.  
  2624.  
  2625.           Sets the image's color model to the enumerated type, _i_f_l_C_o_l_o_r_M_o_d_e_l,
  2626.           specified by _c. If successful, ilOKAY is returned.  See also
  2627.           ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll().
  2628.  
  2629.  
  2630.  
  2631.                                                                        PPPPaaaaggggeeee 44440000
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2639.  
  2640.  
  2641.  
  2642.      sssseeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((())))
  2643.  
  2644.           ilStatus setCompression(iflCompression c)
  2645.  
  2646.  
  2647.           Sets the image's compression scheme to the enumerated type,
  2648.           _i_f_l_C_o_m_p_r_e_s_s_i_o_n, specified by _c.  If successful, ilOKAY is returned.
  2649.           See also ggggeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn().
  2650.  
  2651.      sssseeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee(((())))
  2652.  
  2653.           void setDisplayCacheEnable(int en=TRUE)                    _p_r_o_t_e_c_t_e_d
  2654.  
  2655.  
  2656.           If the enable is _T_R_U_E and this image is not hardware accelerated,
  2657.           then an iiiillllNNNNooooppppIIIImmmmgggg is automatically chained onto the image when it is
  2658.           displayed in order to cache the image data for improved interactive
  2659.           display.  You shouldn't set this enable for images derived from
  2660.           iiiillllMMMMeeeemmmmCCCCaaaacccchhhheeeeIIIImmmmgggg because such objects have cache's of their own.  It
  2661.           does make sense to set it for an uncached, unaccelerated image such
  2662.           as iiiillllJJJJooooiiiinnnnIIIImmmmgggg.
  2663.  
  2664.      sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((())))
  2665.  
  2666.           ilStatus setOrientation(iflOrientation spc)
  2667.  
  2668.  
  2669.           Sets the image's orientation to the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n,
  2670.           specified by _s_p_c. This parameter determines whether the image origin
  2671.           is, for example, the upper left corner or the lower left corner. See
  2672.           also ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn().
  2673.  
  2674.      sssseeeettttCCCCssssiiiizzzzeeee(((())))
  2675.  
  2676.           ilStatus setCsize(int nc)
  2677.           ilStatus setNumChans(int nc)
  2678.  
  2679.  
  2680.           Sets the number of channels in the image. Each pixel has _n_c channels
  2681.           or components. Returns ilOKAY upon successful completion.
  2682.  
  2683.      sssseeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((())))
  2684.  
  2685.           ilStatus setDataType(iflDataType dtype)
  2686.  
  2687.  
  2688.           Sets the image data type to the enumerated type, _i_f_l_D_a_t_a_T_y_p_e,
  2689.           specified by _d_t_y_p_e. Returns ilOKAY upon successful completion.
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.                                                                        PPPPaaaaggggeeee 44441111
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2705.  
  2706.  
  2707.  
  2708.      sssseeeettttFFFFiiiillllllll(((())))
  2709.  
  2710.           ilStatus setFill(const iflPixel& pixel)
  2711.  
  2712.  
  2713.           Sets the image's fill value data member to the values in _p_i_x_e_l.
  2714.           When ggggeeeettttTTTTiiiilllleeee() or ccccooooppppyyyyTTTTiiiilllleeee() try to access pixels that are beyond
  2715.           the image's edge, those pixels are set to the fill value.  The
  2716.           iflPixel type is defined in its header file as consisting of an
  2717.           iflDataType that defines the data type of the image's pixels, an iiiinnnntttt
  2718.           specifying the number of channels of data, and a pointer to the
  2719.           actual pixel data.  See also ggggeeeettttFFFFiiiillllllll() and cccclllliiiippppTTTTiiiilllleeee().
  2720.  
  2721.      sssseeeettttFFFFiiiillllllllRRRRGGGGBBBB(((())))
  2722.  
  2723.           ilStatus setFillRGB(float red, float green, float blue)
  2724.  
  2725.  
  2726.           Sets the image fill value to a pixel whose elements will be
  2727.           interpreted as the color indicated by _r_e_d, _g_r_e_e_n and _b_l_u_e.  The
  2728.           values for the color triplet should be in the range from zero to
  2729.           one.  See also sssseeeettttFFFFiiiillllllll().  sssseeeettttFFFFiiiillllllllVVVVaaaalllluuuueeee(((())))
  2730.  
  2731.           ilStatus setFillValue(double val, int c=0)
  2732.  
  2733.  
  2734.           Sets the image fill value for channel _c to _v_a_l.  See also sssseeeettttFFFFiiiillllllll().
  2735.  
  2736.      sssseeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(((())))
  2737.  
  2738.           void setHwEnable(ilHwAccelEnable enable)
  2739.  
  2740.  
  2741.           This function enables or disables hardware acceleration for this
  2742.           image object.  If acceleration is successfully enabled, the image
  2743.           will derive a performance improvement by using the installed
  2744.           graphics hardware of the system.  See the man page for
  2745.           _i_l_H_w_A_c_c_e_l_e_r_a_t_e.
  2746.  
  2747.      sssseeeettttIIIInnnnppppuuuutttt(((())))
  2748.  
  2749.           ilStatus setInput(ilImage* inimg, int idx = 0)
  2750.  
  2751.  
  2752.           Inserts the image _i_n_i_m_g into the input (parent) list at index _i_d_x.
  2753.           By default, the image is inserted at index 0.  Returns ilOKAY upon
  2754.           successful completion.  See also aaaaddddddddIIIInnnnppppuuuutttt().
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.                                                                        PPPPaaaaggggeeee 44442222
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2771.  
  2772.  
  2773.  
  2774.      sssseeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(((())))
  2775.  
  2776.           void setMaxColormapLevels(int maxLevels)
  2777.  
  2778.  
  2779.           This function sets the maximum number of color levels for optimal
  2780.           color map generation for this image object.  This value may be used
  2781.           to generate a color map when displaying the image if an explicit
  2782.           color map is not supplied.
  2783.  
  2784.      sssseeeettttMMMMaaaaxxxxVVVVaaaalllluuuueeee(((())))
  2785.  
  2786.           ilStatus setMaxValue(double val)
  2787.  
  2788.  
  2789.           Sets the maximum allowable value for all channels.
  2790.  
  2791.      sssseeeettttMMMMiiiinnnnVVVVaaaalllluuuueeee(((())))
  2792.  
  2793.           ilStatus setMinValue(double val)
  2794.  
  2795.  
  2796.           Sets the minimum allowable value for all channels.
  2797.  
  2798.      sssseeeettttNNNNuuuummmmIIIInnnnppppuuuuttttssss(((())))
  2799.  
  2800.           void setNumInputs(int num)                                    _p_r_o_t_e_c_t_e_d
  2801.  
  2802.  
  2803.           Sets the maximum number of inputs allowed by this image to _n_u_m. The
  2804.           maximum number of inputs is checked by aaaaddddddddIIIInnnnppppuuuutttt() and by sssseeeettttIIIInnnnppppuuuutttt().
  2805.  
  2806.      sssseeeettttOOOOrrrrddddeeeerrrr(((())))
  2807.  
  2808.           ilStatus setOrder(iflOrder order)
  2809.  
  2810.  
  2811.           Sets the pixel channel order of this image to _o_r_d_e_r. The enumerated
  2812.           type, _i_f_l_O_r_d_e_r can be one of _i_l_I_n_t_e_r_l_e_a_v_e_d, _i_l_S_e_q_u_e_n_t_i_a_l or
  2813.           _i_l_S_e_p_a_r_a_t_e.  Returns ilOKAY upon successful completion. See also
  2814.           ggggeeeettttOOOOrrrrddddeeeerrrr().
  2815.  
  2816.      sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))
  2817.  
  2818.           ilStatus setPageBorder(const iflXYZint& border)
  2819.           ilStatus setPageBorder(int nx, int ny, int nz=0)
  2820.  
  2821.  
  2822.           Sets the current page border size to _n_x, _n_y, _n_z.
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.                                                                        PPPPaaaaggggeeee 44443333
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2837.  
  2838.  
  2839.  
  2840.      sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((())))
  2841.  
  2842.           ilStatus setPageSize(const iflSize& pageSize)
  2843.           ilStatus setPageSize(int nx, int ny, int nz, int nc)
  2844.           ilStatus setPageSize(int nx, int ny)
  2845.           ilStatus setPageSizeZ(int nz)
  2846.           ilStatus setPageSizeC(int nc)
  2847.  
  2848.  
  2849.           Functions to set the page size.  For each of the versions of this
  2850.           function, the x size is set to _n_x, the y size is set to _n_y, the z
  2851.           size is set to _n_z, and the number of channels is set to _n_c.  See
  2852.           also ilCacheImg.  If the number of channels is set to 0 (or is not
  2853.           set), it is then up to the derived classes to set the actual _c
  2854.           dimension of the page. One might, in a derived class, check the
  2855.           order of the data and then set the _c dimension to 1 for _i_f_l_S_e_p_a_r_a_t_e
  2856.           data or to the number of image channels for _i_f_l_I_n_t_e_r_l_e_a_v_e_d or
  2857.           _i_f_l_S_e_q_u_e_n_t_i_a_l data.
  2858.  
  2859.      sssseeeettttPPPPiiiixxxxeeeellll(((())))
  2860.  
  2861.           ilStatus setPixel(int x, int y, iflPixel& pix)
  2862.  
  2863.  
  2864.           This function is the 2-D version of sssseeeettttPPPPiiiixxxxeeeellll3333DDDD().  It calls
  2865.           sssseeeettttPPPPiiiixxxxeeeellll3333DDDD() with _z set to 0.  See also sssseeeettttPPPPiiiixxxxeeeellll3333DDDD().
  2866.  
  2867.      sssseeeettttPPPPiiiixxxxeeeellll3333DDDD(((())))
  2868.  
  2869.           ilStatus setPixel3D(int x, int y, int z, iflPixel& pix)
  2870.  
  2871.  
  2872.           Writes the iflPixel specified by _p_i_x to the location specified by _x,
  2873.           _y, and _z.  An iflPixel specifies the channel data type, the number
  2874.           of channels per pixel and a pointer to the pixel data.  This
  2875.           function calls sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the tile size _n_x, _n_y and _n_z set
  2876.           to 1. Returns ilOKAY upon successful completion. See also
  2877.           ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD() and sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(), sssseeeettttPPPPiiiixxxxeeeellll().
  2878.  
  2879.      sssseeeettttPPPPrrrriiiioooorrrriiiittttyyyy(((())))
  2880.  
  2881.           void setPriority(int pri)
  2882.  
  2883.  
  2884.           This function sets the cache priority of this image, the default is
  2885.           zero (the lowest priority).  By setting a larger value (up to the
  2886.           maximum of 7), the likelihood that this image's pages will stay in
  2887.           the global cache is increased.
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.                                                                        PPPPaaaaggggeeee 44444444
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2903.  
  2904.  
  2905.  
  2906.      sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(((())))
  2907.  
  2908.           ilStatus setScaleMinMax(double min, double max)
  2909.  
  2910.  
  2911.           Sets the scale minimum and maximum to _m_i_n and _m_a_x.  The scale
  2912.           minimum and maximum are used during color conversion and display.
  2913.           By default, the scale minimum and maximum track the image minimum
  2914.           and maximum values.
  2915.  
  2916.      sssseeeettttSSSSccccaaaalllleeeeTTTTyyyyppppeeee(((())))
  2917.  
  2918.           ilStatus setScaleType(iflDataType type=iflDataType(0))
  2919.  
  2920.  
  2921.           Sets the scale minimum and maximum to the minimum and maximum values
  2922.           of the data type passed in _t_y_p_e.  If _t_y_p_e is defaulted, then this
  2923.           object's data type is used.  The scale minimum and maximum are used
  2924.           during color conversion.  By default, the scale minimum and maximum
  2925.           track the image minimum and maximum values.
  2926.  
  2927.      sssseeeettttSSSSiiiizzzzeeee(((())))
  2928.  
  2929.           ilStatus setSize(const iflSize &size)
  2930.           ilStatus setSize(int nx, int ny)
  2931.  
  2932.  
  2933.           Sets the image size to the value referenced by _s_i_z_e.  The second
  2934.           versions allows just the _x and _y size to be set.  Returns ilOKAY
  2935.           upon successful completion. See also ggggeeeettttSSSSiiiizzzzeeee().
  2936.  
  2937.      sssseeeettttTTTTiiiilllleeee(((())))
  2938.  
  2939.           ilStatus setTile(int x, int y, int nx, int ny, const void* data,
  2940.                            const ilConfig* config=NULL)
  2941.           ilStatus setTile3D(int x, int y, int z, int nx, int ny, int nz,
  2942.                        const void* data, const ilConfig* config=NULL)
  2943.           ilStatus setSubTile(int x, int y, int nx, int ny, const void* data,
  2944.                         int dx, int dy, int dnx, int dny,
  2945.                         const ilConfig* config=NULL)
  2946.           ilStatus setSubTile3D(int x, int y, int z, int nx, int ny, int nz,
  2947.                                 const void* data, int dx, int dy, int dz, int dnx,
  2948.                           int dny, int dnz, const ilConfig* config=NULL)
  2949.  
  2950.  
  2951.           These functions queue a tile write request with qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and
  2952.           wait for it to complete.  The source tile origin is specified by _x,
  2953.           _y, _z, and the tile size is specified by _n_x, _n_y, _n_z.
  2954.  
  2955.           The 2D versions, sssseeeettttTTTTiiiilllleeee() and sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee(), call the corresponding
  2956.           3D routine with _z set to zero and _n_z set to one.
  2957.  
  2958.  
  2959.  
  2960.  
  2961.                                                                        PPPPaaaaggggeeee 44445555
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  2969.  
  2970.  
  2971.  
  2972.           sssseeeettttTTTTiiiilllleeee() and sssseeeettttTTTTiiiilllleeee3333DDDD() assume that the source buffer has the same
  2973.           offset and size as the request; sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee() and sssseeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD()
  2974.           allow the source buffer to have a different position and size,
  2975.           specified by _d_x, _d_y, _d_n_x, and _d_n_y (and _d_z and _d_n_z for the 3D
  2976.           version.)
  2977.  
  2978.           See also qqqqSSSSeeeettttTTTTiiiilllleeee3333DDDD(), qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg().
  2979.  
  2980.      sssseeeettttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnnttttFFFFuuuunnnnccccttttiiiioooonnnn(((())))
  2981.  
  2982.           void setTileRequirementFunction(ilTileRequirementFuncPtr func)   _p_r_o_t_e_c_t_e_d
  2983.  
  2984.  
  2985.           Set a function pointer that is called to override the default
  2986.           implementation of ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt() in a derived class.
  2987.           This method should be called in the derived-class' constructor.
  2988.           This really should be done as a virtual method, but it has been done
  2989.           this way in order to maintain binary compatibility with IL 3.1.1.
  2990.  
  2991.           In order to override the default ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt() in a
  2992.           derived class, you should add a protected method such as
  2993.  
  2994.               ilImageTile* getMyInputTileRequirement(const iflTile3Dint& tile,
  2995.                                                      int c, int nc,
  2996.                                          int* chans, int& inputTileCount);
  2997.  
  2998.  
  2999.           and then call
  3000.  
  3001.               setTileRequirementFunction((ilTileRequirementFuncPtr)
  3002.                                 &MyImage::getMyInputTileRequirement);
  3003.  
  3004.  
  3005.           in the constructor for MMMMyyyyIIIImmmmaaaaggggeeee.
  3006.  
  3007.      sssseeeettttWWWWrrrriiiittttaaaabbbblllleeee(((())))
  3008.  
  3009.           void setWritable(int enable=TRUE)  _p_r_o_t_e_c_t_e_d
  3010.  
  3011.  
  3012.           This function will enable or disable write access to this image.  If
  3013.           _e_n_a_b_l_e is TRUE, then the image will be writable; if FALSE, then the
  3014.           image is not writable.
  3015.  
  3016.      sssseeeettttXXXXssssiiiizzzzeeee(((())))
  3017.  
  3018.           ilStatus setXsize(int nx)
  3019.  
  3020.  
  3021.           Sets the size of the image in the _x-dimension, measured in pixels.
  3022.           Returns ilOKAY upon successful completion.  See special notes on IL
  3023.           image memory order conventions and orientations in the description
  3024.  
  3025.  
  3026.  
  3027.                                                                        PPPPaaaaggggeeee 44446666
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  3035.  
  3036.  
  3037.  
  3038.           of getXsize().
  3039.  
  3040.      sssseeeettttYYYYssssiiiizzzzeeee(((())))
  3041.  
  3042.           ilStatus setYsize(int ny)
  3043.  
  3044.  
  3045.           Sets the size of the image in the _y-dimension, measured in pixels.
  3046.           Returns ilOKAY upon successful completion.
  3047.  
  3048.      sssseeeettttZZZZssssiiiizzzzeeee(((())))
  3049.  
  3050.           ilStatus setZsize(int nz)
  3051.  
  3052.  
  3053.           Sets the size of the image in the _z-dimension, measured in pixels.
  3054.           Returns ilOKAY upon successful completion.
  3055.  
  3056.      uuuunnnnlllloooocccckkkkPPPPaaaaggggeeee(((())))
  3057.  
  3058.           void unlockPage(ilPage *page)
  3059.  
  3060.  
  3061.           This is the single page version of unlockPageSet().  It releases a
  3062.           page previously ``locked'' by lockPage().
  3063.  
  3064.      uuuunnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((())))
  3065.  
  3066.           virtual void unlockPageSet(ilLockRequest* set, int count=1)
  3067.  
  3068.  
  3069.           This function releases a set of pages previously ``locked'' with
  3070.           lockPageSet().  The _s_e_t parameter is a pointer to an array of _c_o_u_n_t
  3071.           ilLockRequest structures.
  3072.  
  3073. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  3074.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllLLLLiiiinnnnkkkk
  3075.      addResetCallback(), alterAction(), anyAltered(), clearAllowed(),
  3076.      clearSet(), clearStatus(), deleteRelated(), disableAltered(),
  3077.      dumpChain(), getClassPropSet(), getDescription(), getDirectParent(),
  3078.      getDisabledIndex(), getFloatProp(), getGenerationID(), getIntProp(),
  3079.      getMaxIndex(), getMinIndex(), getNumChildren(), getNumParents(),
  3080.      getParent(), getProp(), getProp(), getPropSet(), getPtrProp(),
  3081.      getRelatedChild(), getRelatedDelete(), getRelatedType(), getStatus(),
  3082.      hasResetCallbacks(), ilGetClassPropSet(), inProgress(), isAllowed(),
  3083.      isAltered(), isEnabled(), isRelated(), isSet(), markSet(), mpUnlock(),
  3084.      neverReset(), newRelatedType(), removeParent(), removeProp(),
  3085.      removeResetCallback(), reset(), resetAltered(), resetCheck(),
  3086.      setAllowed(), setAltered(), setDescription(), setDisabledIndex(),
  3087.      setEnabled(), setParent(), setProp(), setPropAltered(),
  3088.      setRelatedDelete(), setRelatedType(), setStatus(), stopWatching(),
  3089.      unalterable(), watch(), watchNotify()
  3090.  
  3091.  
  3092.  
  3093.                                                                        PPPPaaaaggggeeee 44447777
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100. iiiillllIIIImmmmaaaaggggeeee((((3333))))         IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll         iiiillllIIIImmmmaaaaggggeeee((((3333))))
  3101.  
  3102.  
  3103.  
  3104. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  3105.      ilCacheImg, ilDisplayImg, ilFileImg, iflColormap, ilMemoryImg, ilOpImg,
  3106.      ilSubImg, _i_l/_i_l_I_m_a_g_e._h, _i_f_l/_i_f_l_D_a_t_a_T_y_p_e_s._h
  3107.  
  3108.      Please refer to the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for a full
  3109.      description of overall concepts and architecture.
  3110.  
  3111. NNNNOOOOTTTTEEEESSSS
  3112.      Although the ilImage class contains no pure virtual functions, it should
  3113.      only be used to derive new classes, never directly created as an object.
  3114.      However, a pointer to an ilImage can be declared in order to support
  3115.      polymorphism.
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.                                                                        PPPPaaaaggggeeee 44448888
  3160.  
  3161.  
  3162.  
  3163.